PIC单片机SPI问题

PIC单片机SPI问题,第1张

IO 口模拟SPI接口 :是可以的

数据就是按照SPI时序移位就可以

举个例子:(片选位必须有效)

SPI的CLK是上升沿有效

可以先将时钟设置为低电平,延时一段时间;

然后将数据移位置端口

再将时钟设置为高电平,延时一段时间

数据就可以输入或者输出了

1.定义三个gpio:p0-sclk,p1-sdi,p2-sdo;p0用于模拟spi的clock,p1用于接收数据,p2用于f发送数据;硬件上单片机A的p0接单片机B的p0,A的p1接B的p2,A的p2接B的p12.发送程序:clock拉低,sdo输出0或1(数据),延时一定时间,clock拉高,延时一定时间,这样A就发送一位数据到B,循环8次就发送一个字节数据3.接收程序:检测clock状态,如果为低,就读取sdi,直到clock拉高,结束该次输入,重复8次,读取一个字节注意:1。clock空闲状态为高,发送数据就拉低;2.还需要加入起始停止同步协议,可根据需要进行完善

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

你的程序中:

RC2=1//CS

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

NOP()

RC3=0//SCK

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

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存