Hi All,
我使用MSP430G2452将USI配置为SPI进行单向通讯时,一旦发送数据第8位(bit 7)为1,即超过0x80时,SPI的MOSI端会出现下图红色框标注的波形,请问这样是正常的吗?
注:上图中发送的数据为0xA0
以下是我的配置文件。
USICTL0 |=USIPE6+USIPE5+USIMST+USIOE;
USICTL1 |=USICKPH+USIIE;
USICKCTL =USISSEL_2;
USICNT =8;
#pragma vector=USI_VECTOR
__interrupt void universal_serial_interface(void)
{
P2OUT |=(0x01<<LCD_CE);
}
void LCD_write_byte( unsigned char dat, unsigned char command)
{
P2OUT & = ~(0x01<<LCD_CE);
if(command ==0)
P2OUT & = ~(0x01<<LCD_DC);
else
P2OUT | = ~(0x01<<LCD_DC);
USISRL=dat;
USICNT=8;
USICTL0 &=~USISWRST;
}
kqian0327:
你好,
理论上是不会有问题,因为只有在clk上升沿或者下降沿采用MOSI信号。
我怀疑你这个问题和你周边硬件电路有关。
你是不是在SPI上加了上拉电阻?
另外你的程序当中我没有看到你的SPI管脚的初始化。
Jimmy lee:
回复 kqian0327:
Hi Michael,
感谢提醒,原先的初始化是P1DIR |=0x31;我想我应该是搞错了,应该为P1DIR |=0x61才对。
SPI没有加上拉电阻的,我是直接把外围去掉后测得波形。
Jimmy lee:
回复 kqian0327:
Hi Michael,
我想知道我图中的波形是正常的吗?
今天尝试将P1DIR | =0x31修改为P1DIR | =0x61波形依然和一楼给波形一样。
另外我使用的板子是launchpad