发新帖我要提问
12
返回列表
打印
[经验知识]

485通讯偶尔出现第一个字节或者前两个字节丢失

[复制链接]
楼主: 影烛光
手机看帖
扫描二维码
随时随地手机跟帖
21
影烛光|  楼主 | 2020-12-26 21:36 | 只看该作者 回帖奖励 |倒序浏览
sszxxm 发表于 2020-12-26 17:48
RS485通信,有个特别要注意到地方:不管主机还是从机,发送方发完了数据,一定要把总线及时释放,否则容易 ...

我把延时设置为到50ms了还是会出现

使用特权

评论回复
22
影烛光|  楼主 | 2020-12-27 14:03 | 只看该作者
谢谢各位大佬们提的宝贵意见和想法,问题已经解决了。是我在主程序中处理接收的程序和中断发生重合了,然后刚好丢失第一或者前两个字节了

使用特权

评论回复
23
zyj9490| | 2020-12-27 14:50 | 只看该作者
影烛光 发表于 2020-12-27 14:03
谢谢各位大佬们提的宝贵意见和想法,问题已经解决了。是我在主程序中处理接收的程序和中断发生重合了,然后 ...

二线程不同步机制吗?

使用特权

评论回复
24
影烛光|  楼主 | 2020-12-28 09:57 | 只看该作者
zyj9490 发表于 2020-12-27 14:50
二线程不同步机制吗?

是的,没有协调好,谢谢!

使用特权

评论回复
25
Jack315| | 2020-12-28 10:44 | 只看该作者
本帖最后由 Jack315 于 2020-12-28 13:22 编辑

有个做状态机的工具推荐下:IAR 的 VisualState (V6.4)

这个工具可以对状态机建模、仿真。成功后可以生成 C 代码。
C++ 代码貌似也可以的,只是没试过。

LZ 的这个应用应该能用得上这个工具。
有兴趣的话 LZ 可以试试。

使用特权

评论回复
26
影烛光|  楼主 | 2020-12-29 10:30 | 只看该作者
Jack315 发表于 2020-12-28 10:44
有个做状态机的工具推荐下:IAR 的 VisualState (V6.4)

这个工具可以对状态机建模、仿真。成功后可以生成  ...

好的,谢谢推荐

使用特权

评论回复
27
zyj9490| | 2021-3-12 16:03 | 只看该作者
影烛光 发表于 2020-12-27 14:03
谢谢各位大佬们提的宝贵意见和想法,问题已经解决了。是我在主程序中处理接收的程序和中断发生重合了,然后 ...

如果采用接收中断的话,只会延时,不会丢失字节,除非长时间中断占用,接收中断没有响应,导致字节OVERWRITE.导致错误。如果轮询的方式处理接收事件,那就没办法了。

使用特权

评论回复
28
wooda| | 2021-3-12 23:05 | 只看该作者
本帖最后由 wooda 于 2021-3-12 23:06 编辑
zyj9490 发表于 2021-3-12 16:03
如果采用接收中断的话,只会延时,不会丢失字节,除非长时间中断占用,接收中断没有响应,导致字节OVERWRI ...

他估计是接收和处理用得同一个缓冲。
接收再处理的时候又发生了中断,然后就gg了
建议是中断里面数据往buf扔,接收处理程序上手第一时间memcpy到自己的buf里面慢慢处理,中断和接收处理程序之间用咯标志位做互锁保护数据不被冲掉。
还有个办法就是环表,只要2倍或者1.5倍,写的效率高一点可以接近1.1或者类似比例,就能保证不被冲。可以设标志位检查有没有头尾撞车,撞车了就设大一点。。不过环表如果撞车,就是数据量太大,设大一点也只能提高峰值能力,不能提高平均能力

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则