STM32/STM8技术william hill官网
直播中

宁升椿

7年用户 270经验值
私信 关注
[问答]

请问如果主机发送信息过快导致从机无法接收数据怎么可以恢复?

请问如果主机发送信息过快 ,导致从机无法接收数据怎么可以恢复,让从机能正常接收

回帖(14)

姬房有

2018-10-18 09:20:41
沙发
举报

姬房有

2018-10-18 09:33:05
怎么实现,等待高人回答
举报

王一凡

2018-10-18 09:45:57
设计一个接收环形队列。把串口接收设置为中断接收。不可长时关中断。这样,接收中断只需要将数据填入队列就行了。
举报

周仁革

2018-10-18 09:59:57
想不出已经无法接收了还能恢复......
举报

胡谦倩

2018-10-18 10:15:15
主机发送的时候加一个校验。从句接收数据校验不对让主机重新发送。
举报

孙婷婷

2018-10-18 10:25:10
清除溢出中断标志位。
举报

宁升椿

2018-10-18 10:38:13
引用: TOPCB 发表于 2018-10-18 14:36
清除溢出中断标志位。

今天试了下   主机发送速度过快,丛机能接收,但是无法发送了
举报

宁升椿

2018-10-18 10:49:14
引用: TOPCB 发表于 2018-10-18 14:36
清除溢出中断标志位。

接收到的信息也不对
举报

孙婷婷

2018-10-18 11:00:54
中断接收还是查询接收.
举报

宁升椿

2018-10-18 11:14:39
引用: TOPCB 发表于 2018-10-18 15:12
中断接收还是查询接收.

中断接收   用的是HAL_UART_Receive_IT这个函数  只要有一次接收的信息不对的话   后面就不能接收或者接收的信息一直不对了
举报

孙婷婷

2018-10-18 11:23:43
HAL库应该没问题,可能是你传输的太快了。波特率多少?传输间隔是多少。
举报

宁升椿

2018-10-18 11:40:57
引用: TOPCB 发表于 2018-10-18 15:35
HAL库应该没问题,可能是你传输的太快了。波特率多少?传输间隔是多少。

file:///C:UserskuangweipengAppDataRoamingTencentUsers1792797736QQWinTempRichOleI3TM`({%V6OU@J~8)(B53LY.png

定时发送设10ms时就会卡死不能接收了
举报

老吴

2018-10-18 16:58:23
为什么会无法接收?发送过快只是丢失数据啊,怎么会无法接收。数据丢失要求主机重发,这就是协议内容
举报

李明

2018-10-19 09:05:16
收到数据后关闭中断,处理完数据打开中断,这样只会出现丢数据,但不会出现你说的卡死现象。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分