在qt5版本以下,想要实现串口通信需要两个集成类,posix_qextserialport 和 qextserialbase,需要的可以移步到 下载点。
在posix_qextserialport这个类中关于串口设置的定义很详细,常用的写法一般是
Posix_QextSerialPort * myCom;
myCom->open(QIODevice::ReadWrite); // 定义打开方式
myCom->setBaudRate(BAUD115200); // 设置波特率
myCom->setDataBits(DATA_8); // 设置数据位
myCom->setParity(PAR_NONE); // 设置校验类型
myCom->setStopBits(STOP_1); // 设置停止位
myCom->setFlowControl(FLOW_OFF);
myCom->setTimeout(50); // 设置延时
有一点需要注意一下,linux系统的串口一般为/dev/ttyS* ,使用时需要加权限,默认是没有权限使用的。。
设计串口读取的思路一般是利用定时器QTimer类
利用timeout作为信号,readCOM作为槽函数,进行周期读取。
在实验中定时器的时间间隔一般需要大于等于串口的延时,否则会卡顿,具体原因,,,我还没弄懂,网上也没这方面的资料,,,可能以后随着经验变多会懂吧