开启新的征程,邀请您见证ST的蜕变

学习微波射频没方向?这些资料不可少!

【备战电赛】先导片-如何补全知识链条


基于STM32的SPI主从全双工通信源码,欢迎测试

基于STM32的SPI主从全双工通信源码,欢迎测试

个人心得:

       在做主从双机通信时,一定要理解好主机和从机的作用,做主机时会控制通信的时钟,从机是不能产生时钟的。如果从机要发送数据,那可以在主机发送数据 的时钟上发送数据。配置上差不多是一样的,就设计主从就得了。我这里接收都是用中断。

还有一点要注意的,做主机接收时,不能和发送共用一个函数。这个为什么我自己现在也没有清楚,只是在实验中测得。

纠错:从机的接收函数改成,这时因为我测试完成后有改动就压包,后来测试发现主机不能正常接收到数据
更正:我之前的两个时钟的理论是不合理的,因为全双工收发是可以共用时钟的,这个我在后面改进的主机程序中有体现。

欢迎大家测试

u8 SPI1_ReadByte(u8 TxData)
{
u8 retry=0;
// while((SPI1->SR&1<<1)==0)//等待发送区空
// {
// retry++;
// if(retry>200)return 0;
// }
// SPI1->DR=TxData; //发送一个byte
retry=0;
while((SPI1->SR&1<<0)==0) //等待接收完一个byte
{
retry++;
if(retry>200)return 0;
}
return SPI1->DR; //返回收到的数据
}

工具:STM32 MINI板两块

注意:NSS软件管理模式,主机:SSM=1,SSI=1。

从机:SSM=1,SSI=0;

连线:主机 SCK<-> SCK 从机

MISO <-> MISO

MOSI<-> MOSI

SPI主机通信程序部分截图:

SPI从机通信程序部分截图:

改进:把主机改成查询接收也是可以的,这时只要一个发送,是真正意义上的全双工了。

部分程序截图:(详见附件内容)

电路相关文件

电路图文件
STM32 SPI双机通信.rar
描述:SPI双机通信源码
分享到:
收藏 (3)
电子硬件助手小程序 电子硬件助手小程序

电路城电路折扣劵获取途径:

电路城7~10折折扣劵(全场通用):对本电路进行评分获取;

电路城6折折扣劵(限购≤100元电路):申请成为卖家,上传电路,审核成功后获取。

(版权归suqingxiao所有)

版权声明:电路城所有电路均源于网友上传或网上搜集,供学习和研究使用,其版权归原作者所有,对可以提供充分证据的侵权信息,本站将在确认后24小时内删除。对本电路进行投诉建议,点击投诉本电路反馈给电路城。

使用说明:直接使用附件资料或需要对资料PCB板进行打样的买家,请先核对资料的完整性,如果出现问题,电路城不承担任何经济损失!

换一批 more>>

大家都在看:

继续阅读

销量
126
查看
2119
shishinanliao

shishinanliao

见习卖家
从未停止学习的电子界菜鸟
参数名 参数值
发布于 2016 年 08 月 25日
Moore8直播课堂