HAP七夜 发表于 2023-6-14 18:39:30

串口能正常发指令,但是收不到返回值

使用QserialPort开发串口软件,能正常发指令,但是serial.readall函数无法获取返回值

shuishui 发表于 2023-6-15 09:43:13

您好,关于qt应用开发这方面我们了解的也不太多,我给您在网上找了一些排查方法,您可以参考一下。
1.延迟问题:串口通信是异步的,发送指令后需要等待一定时间来接收返回值。请确保在发送指令后适当地延迟一段时间再尝试读取返回值。您可以使用 QThread::msleep() 函数来添加延迟。

2.数据接收方式:QSerialPort 提供了多种接收数据的方式,包括 readAll()、readLine()、read() 等。确保您使用的接收函数与目标设备的返回数据格式相匹配。例如,如果目标设备每次返回的数据以换行符结尾,你可以使用 readLine() 来读取一行数据。

3.数据读取时机:确保在发送指令后等待足够的时间以确保返回值已经完全接收。您可以使用 waitForReadyRead() 函数等待数据的到达,然后再进行读取操作。

4.数据处理方式:确认接收到的返回值不为空,并使用适当的方式处理和解析数据。您可以使用字符串操作函数、正则表达式或其他方法来提取和解析所需的数据。
页: [1]
查看完整版本: 串口能正常发指令,但是收不到返回值