欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

spi多机通讯

更新时间: 2014-01-05 03:19:43 责任编辑: Author_N1

 

SPI多机通信
我现在想用两台单片机上进行SPI的多机通信,可收发,用到四根线SDO,SDI,EN,SCK、

我是这样进行假设的、

主机发送一个数据的8位、每个时钟上升沿开始发送数据、8个时钟后数据发送完毕

从机的话是如何进行接收的呢?(主机发送的8位数据不可能是全部存在了SDO上面的吧)、那么从机是检测每来一个时钟进行一次数据的存储了吗?那这样的话,从机的sck线是不是要设为输入状态了呢?

感觉发送很容易


void send(unsigned char date)
{
   en=1;
   _delay(10);
   en-0;
   sck=0;
   for(int i=0;i<8;i++)
   {
       sdo=date&0x80;
       sck=1;
       _delay(10);
       date<<=1;
       sck=0;
   }
}


上面是我写帖子时顺手写下的发送函数,要是主机以这样的方式发送出去的话、从机应该如何接收?

了解的人,请帮助帮助、谢谢了
--参考方法--
网络中需要启用使能端或者片选端EN。
其实需要自定义协议。
假定所有IC均空闲,则都将EN设置为输入。EN上拉将使所有IC均发现总线空闲。
如果发现空闲,且某一IC需要发送数据,则设置为输出低。
发送ID,则对应ID的IC启动输入作业。

接收发送数据,都有硬件缓冲区。
除非自定义IO端口,模拟SPI。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:19:43
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20856/
本文WWW.DOC100.NET DOC100.NET版权所有。