PIC16LF1503 SPI程序中 卡在while(SSP1IF == 0) 等待发送完毕 这个语句中 ;

PIC16LF1503 SPI程序中 卡在while(SSP1IF == 0) 等待发送完毕 这个语句中 ;,第1张

看下SPI的通信协议逗团袭就知道了,发送或漏和接收都是先接收MSB位,每发送一位,数据就向左(最高位)移一山兄位,这样当发送了一个字节后,也正好接收到了一个字节,不知这样说能否理解。。。

(1)SDI – 主设备数据输入,从设备数据输出;

(2)SDO – 主设备数据氏粗输出,从设备数据输入;

(3)SCLK – 时钟信号,由主设备产生;

(侍激4)CS – 从设备使老核袜能信号,由主设备控制。

直接把两个单片机连接到一起就可以了,然后按照datasheet要求写驱动程序也就是设置寄存器

完全可以用IO口模拟SPI、IIC和异步串行通信。

你的程序凳毁中:

RC2=1//CS

C3=0 //SCK要改为:RC2=1//CS

NOP()

RC3=0//SCK

这是因为PIC单片机对端口 *** 作时是按“读-修改-写”的顺序,这个说来有点复杂,可参阅参考资料。

还有,要根据通信对象的最大SPI速率来确定每一位的延时时间,即每凯含位间用枣孙备几个NOP()语句。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8228544.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存