找回密码
 立即注册
收起左侧

QT5串口收不到数据纠结死了。

2
回复
8425
查看
[复制链接]
累计签到:7 天
连续签到:1 天
来源: 2016-6-14 11:44:03 显示全部楼层 |阅读模式
1Qter豆
本帖最后由 aya 于 2016-6-14 11:55 编辑

问题描述:
    1.发送数据可以但是使用QT5接受不到串口数据,使用readMyCom()收到缓冲区的字节为0。
    2.QObject::connect(&serial,SIGNAL(readyRead()),this,SLOT(readMyCom()));这个信号槽根本不会触发是不是因为第一个问题根本没有接受到数据啊。
部分代码如下:
void Dialog::readMyCom()
{      
QByteArray temp = serial.readAll();      
int a = serial.bytesAvailable();      
qDebug("intensity:%d",a);
}
serial.setPortName("/dev/"+ PortName);   
serial.setBaudRate(QSerialPort::Baud9600);   
serial.setDataBits(QSerialPort::Data8);   
serial.setStopBits(QSerialPort::TwoStop);   
serial.setParity(QSerialPort::NoParity); //QObject::connect(&serial,SIGNAL(readyRead()),this,SLOT(readMyCom()));

最佳答案

查看完整内容

1.你先确定信号槽函数能正常工作 2.如果信号和槽能确定工作,那 QByteArray temp = serial.readAll(); int a = serial.bytesAvailable(); 这两句写倒了吧?都把数据读完了,还有“有效字节”吗?
回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2016-6-14 11:44:04 显示全部楼层
1.你先确定信号槽函数能正常工作

2.如果信号和槽能确定工作,那
QByteArray temp = serial.readAll();      
int a = serial.bytesAvailable();  
这两句写倒了吧?都把数据读完了,还有“有效字节”吗?
回复

使用道具 举报

累计签到:7 天
连续签到:1 天
2016-6-14 16:06:56 显示全部楼层
本帖最后由 aya 于 2016-6-14 16:08 编辑
qq1043068972 发表于 2016-6-14 13:24
1.你先确定信号槽函数能正常工作

2.如果信号和槽能确定工作,那

是的确实是这个问题我已经解决了。我之前不知道读串口相当于“剪切”,我理解为“复制”。就是这个问题非常感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了