两个单片机通讯问题

weicheichei 2012-08-31 03:49:44
我有一个arm板要和单片机通讯,只有四个口相连着,单片机作为从机。arm扳作为主机,要互相发送数据。我的想法如下,大家有什么好建议没有,谢谢P1.4 为单片机的中断口
P1.5 为单片机的输入
P1.6 为单片机的输出
P1.7 为单片机的输入
(由于arm和单片机有光藕隔离,故输入和输出线不能转换)

通讯规则: 单片机程序有20种工作状态,需要P1.5和P1.7进行选择(由arm主机发送命令),由于只有两个输入口,所以必须输入4次,才能判断
工作状态,2*2*2*2=32;
所以就是每次变化工作状态的时候,必须arm板给单片机中断(P1.4)四次,每中断一次单片机判断P1.5和P1.7的值,所以四次中断才能
最终判断工作状态。

单片机需要向外部传送数据的时候,是由arm提出请求(就是上面所说的工作状态之一),将P1.5口作为时钟线,p1.5给一个时钟,单片机
从P1.6输出一位数据。但是我现在时钟是这么使用
while(0==p1.5);
while(1==p1.5);
p1.6=数据;
...全文
225 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovejuanjuan 2012-09-14
  • 打赏
  • 举报
回复
可以模拟IIC通信
aydf1 2012-09-10
  • 打赏
  • 举报
回复
好了没?
lbing7 2012-09-10
  • 打赏
  • 举报
回复
不用额外的IO,通过软件通信协议的地址。主从模式即可顺利的取数据
ymm198606 2012-09-10
  • 打赏
  • 举报
回复
用UART口了,一个发口,一个接口了;
island0209 2012-09-03
  • 打赏
  • 举报
回复
光耦隔离的话,SPI的通信速率受限制的。只能几十K的通信速率。还不如用串口通信呢。
aydf1 2012-09-01
  • 打赏
  • 举报
回复
这种通讯方式SPI比较合适 不用搞两条输入线
a214330271 2012-08-31
  • 打赏
  • 举报
回复
这种通讯方式SPI比较合适 不用搞两条输入线
dceacho 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:
不用这么复杂吧,一根中断线(片选),一个数据出,一个数据入,一个时钟线
典型SPI通信就够了啊

那从机等待主机发送时钟的时候是不是这样while(0==p1.5);
while(1==p1.5);
p1.6=数据;
[/Quote]

是的

如果你把CS线接到从机的中断线上去就不用等了
weicheichei 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
不用这么复杂吧,一根中断线(片选),一个数据出,一个数据入,一个时钟线
典型SPI通信就够了啊
[/Quote]
那从机等待主机发送时钟的时候是不是这样while(0==p1.5);
while(1==p1.5);
p1.6=数据;
dceacho 2012-08-31
  • 打赏
  • 举报
回复
不用这么复杂吧,一根中断线(片选),一个数据出,一个数据入,一个时钟线
典型SPI通信就够了啊

27,377

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧