野火imx6ull开发板在终端内可以正常使用uart串口通信,但在qt项目内通信不正常,qt项目在linux虚拟机中一切正常,什么原因?

本项目是基于野火linux开发板imx6ull的QT项目,在QT5.0环境中使用。项目涉及到使用qtserialport调用串口完成串口接收格式为xx,yy的数据并绘图,效果如下:

img


但是按照linux野火开发板的教程将QT项目下载到开发板中后,除了串口接收并绘图之外功能一切正常,无论串口助手发送什么内容,总是返回同样的值:

img

img


串口发送的数据和在电脑虚拟机linux端用串口发送的数据完全相同,且在野火开发板中用cat命令测试ttymxc2 是可以正常显示串口接收到的信息的 用echo命令测试uart串口,也可以正常在电脑物理机中收到消息。

img


保持上述测试确保uart串口正常后,再运行qt项目,依然无法在qt项目中接收串口的数据,不知道原因出在哪里,求解答。

你的意思是,无论给它发什么,它返回的都是“?board”这样一个字符串?如果这样,我估计程序的串口收发功能还是在运行的,至少部分正常的,但是对数据接收判断出错了,这很可能是程序输出的一条错误提示信息,建议在源码里找一下,在什么情况下会输出一个带”board“字样的返回值,再结合具体报错原因分析。
我估计和串口的默认工作模式有关,linux虚拟机和开发板,在硬件上毕竟是有区别的。

你好,这个按照野火的教程来应该是没有问题的,你多看看野火的开发文档,看看是不是有哪一个步骤漏了,另外这个xcom的串口助手不太好用,可以考虑使用野火自家的串口助手。这个重头学习的东西最好按步骤来搞,一个功能一个功能在板子上调试,不能一次太跨越太大来搞,不然出问题也不好排查。