qt 串口读不到数据是什么原因
构造函数:
myCom = new Posix_QextSerialPort("/dev/ttyS1",QextSerialBase::Polling);
myCom->open(QIODevice::ReadWrite); myCom->setBaudRate(BAUD4800);
myCom->setDataBits(DATA_8);
myCom->setParity(PAR_NONE);
myCom->setStopBits(STOP_1);
myCom->setFlowControl(FLOW_OFF);
myCom->setTimeout(10);
readTimer = new QTimer(this);
readTimer->start(10);
connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()));
定时器触发函数:
QByteArray temp = myCom->readAll();
qDebug()<<"read:"<<temp<<endl;
是点按钮发送的,用的是VM Ubuntu11.10 串口可以连接开发板
先用别人写都现成都串口调试助手实验下能发不,能发说明你写都代码有问题,不能发说明硬件线路有问题。
然后bool x = myCom->open(QIODevice::ReadWrite);
看串口打开没有。
看波特率是否一致。
对,你都代码好像有点问题:
建议把参数都设置完以后再打开串口毕业论文 :
把
myCom->open(QIODevice::ReadWrite);
放在后面。
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimer>
#include "posix_qextserialport.h"
#include <QtGui/QtGui>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Posix_QextSerialPort *myCom;
QTimer *readTimer;
private slots:
void on_pushButton_clicked();
void readMyCom();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H