[STM32F1] 两F103用SPI通讯 上电偶尔不能通讯

[复制链接]
 楼主| tdh03z 发表于 2023-7-30 10:53 来自手机 | 显示全部楼层 |阅读模式
两个F103基于SPI3进行通讯,主机定时用DMA发送,从机用DMA方式接收,通讯功能已经正常了。

但是两个F103同时上电,会出现接收不到数据的情况,人为复位从机,通讯恢复。
这是个在F429时也出现过,有人碰到过吗?
chenjinyu 发表于 2023-8-4 15:16 | 显示全部楼层
有没有做CRC的校验
SPI主机只有SCK,一旦SCK和数据对应不上了,后面的数据都会错乱。需要用到CRC,强制SPI复位
Mowergy 发表于 2023-8-5 09:06 | 显示全部楼层
有没有做CRC的校验
 楼主| tdh03z 发表于 2023-8-7 21:41 来自手机 | 显示全部楼层
没操作过CRC啊,应该默认是关闭的吧。主从机都是用DMA发送接收,没用NSS片选,会不会是SPI的时钟错位导致一直收不到正确数据导致的
 楼主| tdh03z 发表于 2023-8-7 21:42 来自手机 | 显示全部楼层
https://blog.huangzzk.info/archives/86  STM32从机SPI通信的CRC、错位问题
 楼主| tdh03z 发表于 2023-8-10 22:38 来自手机 | 显示全部楼层
确实是SCK时钟错位导致,看了下CRC校验,发送接收都用DMA方式,从机接收的CRC校验一直提示错误,不知道为啥
一只眠羊 发表于 2023-8-11 18:13 | 显示全部楼层
你用SPI的模块,USB转SPI的模块,给发数据,仿真跟一下,看看同时上电是哪个模块接收不到数据啊?
未说出口的像你 发表于 2023-8-11 20:11 | 显示全部楼层
一般情况不应该啊,SPI 就总线形式啊,还能跟上电的先后数据有关系?

juventus9554 发表于 2023-8-11 22:19 | 显示全部楼层
操作过CRC?
Stahan 发表于 2023-8-11 22:37 | 显示全部楼层
是不是CRC校验的问题啊
在曼谷的春 发表于 2023-8-11 22:43 | 显示全部楼层
之前我也遇到过,不过是串口的,那时候有先上电做检测,检测设备在不在啥的

我吃小朋友 发表于 2023-8-12 01:34 | 显示全部楼层
复位从机,就能收到数据了?那你复位主机是不是没啥用啊

月亮一键变蓝 发表于 2023-8-12 03:52 | 显示全部楼层
话说,你开机的时候,SPI会发什么数据吗?

失物招領 发表于 2023-8-12 05:25 | 显示全部楼层
有没有检测是否设备在线的操作啊?要是有的话,你屏蔽一下试试

她已醉 发表于 2023-8-12 07:02 | 显示全部楼层
感觉还是你发什么非法字符了吧,然后就不行了

 楼主| tdh03z 发表于 2023-8-12 09:07 来自手机 | 显示全部楼层
就是主机用DMAf方式1秒定时发一帧长54字节数据,从机DMA接收,都没用中断。这个已经确认是SPI的sck错位造成的,毕竟是同步传输,一旦时钟丢失1位,接收数据就会一直不正确。还必须重新初始化SPI接口才能恢复
 楼主| tdh03z 发表于 2023-8-12 09:10 来自手机 | 显示全部楼层
和前期用F429时,遇到的问题是一样的。当时就是从机延时启动来解决,看来有问题。碰到严重干扰环境,SCK错位还是会出问题
将爱藏于深海 发表于 2023-8-12 09:11 | 显示全部楼层
这种2MCU交互,最好还是用485这种,能好点吧

春日负喧 发表于 2023-8-12 11:26 | 显示全部楼层
这是偶然现象还是必然现象啊?每次一起上电,第一次都这样么?

chenqianqian 发表于 2023-8-12 12:40 来自手机 | 显示全部楼层
主机上电就一直默认发数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

206

帖子

4

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