嵌入式学习小组
直播中

李兆峰

7年用户 225经验值
私信 关注

LPC2136与Mega8相互通信怎么实现?

我现在做的项目需要LPC2136与Mega8相互通信,我采用的是SPI协议,LPC2136先发命令,Mega8执行并返回给LPC2136检测到的数据,两者都是在中断中接收数据。现在LPC2136能够发送数据,Mega8不能接收数据,感觉到Mega8的SPI好像就没有工作。

     请问LPC2136和Mega8怎么设置才能够正常接收和发送数据?当LPC2136给Mega8发数据时我把LPC2136设为主机,Mega8设为从机,当Mega8给LPC2136回传数据时是不是应把Mega8设为主机LPC2136设为从机,主从机要相互切换下吗?麻烦各位大侠指导下啊。小弟在此感激不尽。

回帖(6)

何羽衣

2020-6-16 15:06:20
云汉达人 邀请回答

cs拉低
发地址
发数据
cs拉高
一般就是发地址可能把地址写串了
举报

刘欢

2020-6-16 15:17:28
云汉达人
一般主机从机不需要切换的。
举报

李泽坚

2020-6-16 15:36:17
1、你先确定一下mega8的SPI到底有没有工作。方法是将这个SPI挂载到一个确认可以工作的主机上面看能不能收到信息
2、SPI的通信协议是一主多从式,就是一个总线上面只能有一个主机和多个从机。主从机都能够向对方互相发送数据,因此不用切换
(PS:SPI跟USB的工作原理差不多的)
举报

张浩

2020-6-16 15:53:10
云汉达人 邀请回答

SPI的主从关系是确定的,不用切换,SPI 四线 写的过程中主机其实也是在读数据的,只需要将两边的时钟极性与相位匹配一直就可以了
以下是 Mega8的 SPI时序

举报

更多回帖

发帖
×
20
完善资料,
赚取积分