【在windows下使用串口通讯正常,在linux下使用串口通讯收不到数据】
最近在调试一台6维力传感器,使用厂商提供的软件没有问题,然后在windows下使用串口调试工具发送查询码可以正常通讯收到返回码,但是放到linux系统下使用串口调试助手发送却收不到数据
在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的但是也没有收到数据。
总结:下次再遇到这种收不到数据的串口通讯问题,直接监测接收端接收的数据是否与正常接收的一致,然后再去调整。
希望本次的分享能对大家有所帮助,谢谢!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)