STM32
直播中

云中云

9年用户 1016经验值
私信 关注
[问答]

求助,关于STM8S003F3串口问题求解

接手一个研发任务,使用的是STM8S003F3,这个产品需要接受约以40ms间隔发送并回复的485数据帧,帧长度为8字节到18字节不等,使用中发现STM8S003F3在如此短间隔内无法完全处理完所有的数据帧,也就是丢包。丢包率大概在1%左右,不知道有没有朋友遇到过这种情况并有解决的办法。由于设备比较特殊,预期丢包率不应该高于万分之一,通信模式为自定义协议 485 8bit 9600 1stopBit parity-none

回帖(1)

朱佳婧

2024-5-10 15:28:04
按照你的通讯参数,时间应该比较紧凑,特别是当数据接收和恢复都是18字节时,光通讯时间就大约消耗了38ms, 提供如下建议:
0. 如果条件允许,可把波特率提高一个档次;
1. 丢包,首先你要确认是数据没收到还是解析出错;
2. 使用中断接收,接收的数据放入缓存;
3. 读取缓存并解析数据,解析后的数据可以直接发送,
4. 增加数据包校验机制,如CRC8、CRC16等等,设置累加和也可以。
举报

更多回帖

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