【在windows下使用串口通讯正常,在linux下使用串口通讯收不到数据】

作者在Linux下使用串口调试助手与6维力传感器通讯时收不到数据。经排查发现,问题在于串口调试助手的Chardelay配置,将其设为1ms导致数据不一致。解决方法是监测接收数据并调整至与Windows系统一致。

在windows下使用串口通讯正常,在linux下使用串口通讯收不到数据

背景:最近在调试一台6维力传感器,使用厂商提供的软件没有问题,然后在windows下使用串口调试工具发送查询码可以正常通讯收到返回码,但是放到linux系统下使用串口调试助手发送却收不到数据

调试:在Linux系统下使用cutecom工具进行调试,配置与windows一样,见下图
在这里插入图片描述
linux系统下配置
在这里插入图片描述
这里在linux系统下使用的串口调试工具是cutecom,什么配置都尝试了一下,发现还是收不到数据。
分析了一下:
1.可能是不同系统的CRC校验码不一样导致,网上查了一下没有问题
2.可能是波特率过高为921600,发送数据过多导致
最后都不是原因。

问题解决:
又找了一台电脑,直接2台电脑进行通讯,通过另一台电脑监控不同系统发送的数据是否一致,目前可以确认的就是2个系统都能打开该串口,都能发送数据,但是linux系统接收不到数据。
通过发送数据检测立马发现问题:2个系统发送的数据不一致
那接下来就调整让linux系统发送的数据与windows系统一致即可。
通过半天的调试,最后发现问题还是在串口调试助手的配置上,就是下方的Char delay 时间配置,不知道什么时候改成了1ms,所以导致发送的数据一直不对。
在这里插入图片描述
本来以为这个只是延迟发送不影响数据发送,结果没想到是这个有问题,但是之前也有设置0ms的但是也没有收到数据。

总结:下次再遇到这种收不到数据的串口通讯问题,直接监测接收端接收的数据是否与正常接收的一致,然后再去调整。
希望本次的分享能对大家有所帮助,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值