在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作為槽函數,進行周期讀取。
在實驗中定時器的時間間隔一般需要大于等于序列槽的延時,否則會卡頓,具體原因,,,我還沒弄懂,網上也沒這方面的資料,,,可能以後随着經驗變多會懂吧