标题:求助:在子线程中对串口进行循环写数据,接收方不能收到数据
作者:kojeka2018
日期:2018-10-24 15:10
内容:
各位高手,高高手:目前手上用Qt编制了一个小程序,在子线程中循环向串口发送数据,问题是接收方接收不到数据。目前测试的情况如下:1.硬件接口等都是ok的,在主线程打开同一个串口并向其发送一次数据,接收方是可以接收到数据的。2.在主线程中以start()调用子线程,在子线程中发送数据write,接收方等不到。请问下有没有遇到这种情况的?下面附上子线程的代码
Mythread.cpp文件
#include "mythread.h"
#include
Mythread::Mythread(QObject *parent) :
QThread (parent)
{
}
void Mythread::run()
{
qreal i =0;
int j = 0 ;
if (MySerial != NULL)
{
MySerial->close();
}
MySerial = new QSerialPort();
qDebug() setPortName("/dev/ttyS1");
if (!MySerial->open(QIODevice::ReadWrite))
{
qDebug() clear();
MySerial->setBaudRate(QSerialPort::Baud57600);
MySerial->setDataBits(QSerialPort::Data8);
MySerial->setParity(QSerialPort::NoParity);
MySerial->setStopBits(QSerialPort::OneStop);
MySerial->setFlowControl(QSerialPort::NoFlowControl);
qDebug()
#1 [ytj0992 10-28 21:04]
解决了吗,我也遇到了同样的问题,多次写只有第一次是成功的,后面的没有响应。
#2 [cj123sn 11-06 08:42]
从代码层面讲,open,close,send,recv,独立开来,从硬件层面讲,要理解何为全双工和半双工,下位机回应的同时,你这里再发送的话,会造成收不到