求助:如何实现两个MCU之间的spi接口双工通信

[复制链接]
 楼主| zgq0901 发表于 2008-4-22 22:33 | 显示全部楼层 |阅读模式
    请问各位,我用spi接口实现两片c8051f单片机的双工通信,我试编了一段程序,把其中一个作为主机,另一个作为从机,但只能实现主机向从机发送数据,而从机回给主机的数据主机却接收不到,不知道是什么原因,那位大侠曾经编过类似的程序,请指点一下,如果有例程当然最好了,多谢了
ljxh401 发表于 2008-4-23 09:18 | 显示全部楼层

在AVR中做过

分机发给主机的信息 是在主机发送数据给分机时候一并接收的
因为分机自己不产生时钟脉冲 你不会犯的是这么低级的错误吧
huangqi412 发表于 2008-4-23 11:29 | 显示全部楼层

发送的同时也在接受 ,应该没问题的啊

 楼主| zgq0901 发表于 2008-4-23 22:56 | 显示全部楼层

我知道发送和接收是同时的

   发送和接收是同时的没错,但从机想发给主机的数据主机却接收不到,只要给从机的spidata写数据就会发生写数据冲突,今天又调了一下程序,发现从机给spidata赋值只能在发送完数据片选信号ss为高的时候才行,现在主机能接收数据了,但接收的数据总是右移了一位,比如从机spidata=0x40,主机接收的就是0x20,但主机发给从机的数据没错,这就又不知道怎么办了
 楼主| zgq0901 发表于 2008-4-25 10:57 | 显示全部楼层

哈哈,调试成功

    问题已经全部解决,主机接收数据移位是因为主机spi时钟速率设置不合适,只要把sck调一下就行了
gyt 发表于 2008-4-25 14:05 | 显示全部楼层

祝贺一下

mcu2051 发表于 2008-4-25 17:37 | 显示全部楼层

恭喜!

一起沉默h 发表于 2014-6-28 18:33 | 显示全部楼层
求代码,我现在也在做这个,单边传输都不稳定,双边就不知道怎么办了,求代码,就讲解啊
lxj19901115 发表于 2014-7-1 11:24 | 显示全部楼层
一起沉默h 发表于 2014-6-28 18:33
求代码,我现在也在做这个,单边传输都不稳定,双边就不知道怎么办了,求代码,就讲解啊 ...

双边传输的话,你可以加协议
比如主机这边,发送0xdd,0xdc,,,,,0xfe,0xff,这样告诉从机,这是主机向从机发送数据,从机可以不回数据,
如果要读取数据的话,那么就另外一个,0xec,0xee,,,,0xed,0xxx说明是主机想从机请求数据,
这样虽然速度会慢点,但是通信数据的正确性是可以保证的,
还有就是在针对特殊字符的时候,要定义转码规范,,
lxj19901115 发表于 2014-7-1 11:25 | 显示全部楼层
lxj19901115 发表于 2014-7-1 11:24
双边传输的话,你可以加协议
比如主机这边,发送0xdd,0xdc,,,,,0xfe,0xff,这样告诉从机,这是主机向从机 ...

我那方法,适合大批量数据,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

52

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部