Ubuntu下訪問串口

Ubuntu下訪問串口
一、首先查看串口列表
dmesg | grep ttyS*
二、增長規則文件
在/etc/udev/rules.d目錄下建立tty.rules文件,增長如下內容
KERNEL=="ttyS[0-9]*",MODE:="0777",GROUP:="dialout"
三、保存並重啓電腦
四、編寫代碼,QT代碼以下
void Init(const char *szCom, int nBaud, int oeCheck, int nDatabit, int nStopbit)
{
strcpy(m_szCom, szCom);
m_nBaud = m_nBaud;
m_oeCheck = oeCheck;
m_nDatabit = nDatabit;
m_nStopbit = nStopbit;工具

serial_port_t = new QSerialPort();
switch (nBaud)
{
case 1200:
serial_port_t->setBaudRate(QSerialPort::Baud1200);
break;
case 2400:
serial_port_t->setBaudRate(QSerialPort::Baud2400);
break;
case 9600:
serial_port_t->setBaudRate(QSerialPort::Baud9600);
break;
case 38400:
serial_port_t->setBaudRate(QSerialPort::Baud38400);
break;
case 115200:
serial_port_t->setBaudRate(QSerialPort::Baud115200);
break;
case 192000:
serial_port_t->setBaudRate(QSerialPort::Baud19200);
break;
default:
serial_port_t->setBaudRate(QSerialPort::Baud9600);
break;
}this

switch (oeCheck)
{
case 0:
serial_port_t->setParity(QSerialPort::OddParity);
break;
case 1:
serial_port_t->setParity(QSerialPort::EvenParity);
break;
case 2:
serial_port_t->setParity(QSerialPort::NoParity);
break;
default:
serial_port_t->setParity(QSerialPort::NoParity);
break;
}it

switch (nDatabit)
{
case 5:
serial_port_t->setDataBits(QSerialPort::Data5);
break;
case 6:
serial_port_t->setDataBits(QSerialPort::Data6);
break;
case 7:
serial_port_t->setDataBits(QSerialPort::Data7);
break;
case 8:
serial_port_t->setDataBits(QSerialPort::Data8);
break;
default:
serial_port_t->setDataBits(QSerialPort::Data8);
break;
}date

switch (nStopbit)
{
case 1:
serial_port_t->setStopBits(QSerialPort::OneStop);
break;
case 2:
serial_port_t->setStopBits(QSerialPort::TwoStop);
break;
default:
serial_port_t->setStopBits(QSerialPort::OneStop);
break;
}grep

serial_port_t->setFlowControl(QSerialPort::NoFlowControl);d3

if (!serial_port_t->open(QIODevice::ReadWrite))
{
CLogWrite::LogWriteEX(LOG_ERROR, __FUNCTION__, __LINE__, 999999, "Open COM: %s Failed %d %d %d %d",
szCom, nBaud, oeCheck, nDatabit, nStopbit);
return;
}
else
{
CLogWrite::LogWriteEX(LOG_ERROR, __FUNCTION__, __LINE__, 999999, "Open COM: %s Succeed %d %d %d %d",
szCom, nBaud, oeCheck, nDatabit, nStopbit);
}top

connect(serial_port_t, &QSerialPort::readyRead, this, &CLasairManage::read_date);
}tab

二、minicom工具di

相關文章
相關標籤/搜索