本帖最后由 popeye0451 于 2012-12-15 20:09 编辑
我用两个
单片机(C8051F340)进行SPI
通信,使用了4根线,分别是NSS,MOSI,MISO,SCK。一个作为主
芯片,一个作为从芯片。从芯片主管显示,主芯片接收键盘输入,处理键盘信息后往从芯片发送显示命令。
现在遇到的问题是:把程序都烧进单片机后,上电,显示屏没有显示。断电,重新上电,显示屏就能显示了。不过,又这样断电上电测试了两三次后,显示屏就再也不显示了。单独测试从芯片,显示屏是可以显示的,说明从单片机也在工作。基本确定是SPI通信出了问题。顺便说下:程序都是调试好的,在相似的板子上都能够完美运行的。
现在我不知道如何来检查SPI的问题,各位有什么好的建议?
又做了一下测试,单独测试主单片机,主单片机可以成功发送数据,由于手头没有示波器,看不了数据波形。
测试代码如下,就是发送一个字节,用查询方式判断是否发送成功。
SPI0CN = 0x09;
SPI0DAT = 0x33;
while( SPIF == 0 );
SPIF = 0;
NSSMD0 = 1;
针对从单片机的测试,先修改了主单片机代码,使得SPI的片选从单片机信号始终选通,然后从单片机往主单片机发送数据,结果程序始终卡在while( SPIF == 0 )这句。难道是从单片机的SPI口有问题,还有什么方法可以测试SPI口的好坏吗?
从单片机接了一个320240的液晶,可以对液晶进行操作,单片机应该没坏吧。
各位还有什么建议?
主芯片每次发送1byte后,做一个延时,再试试
一周热门 更多>