Ubuntu下访问串口
<p>Ubuntu下访问串口<br>1、首先查看串口列表<br>dmesg | grep ttyS*<br>2、增加规则文件<br>在/etc/udev/rules.d目录下创建tty.rules文件,增加以下内容<br>KERNEL=="ttyS*",MODE:="0777",GROUP:="dialout"<br>3、保存并重启电脑<br>4、编写代码,QT代码如下<br>void Init(const char *szCom, int nBaud, int oeCheck, int nDatabit, int nStopbit)<br>{<br> strcpy(m_szCom, szCom);<br> m_nBaud = m_nBaud;<br> m_oeCheck = oeCheck;<br> m_nDatabit = nDatabit;<br> m_nStopbit = nStopbit;</p><p> serial_port_t = new QSerialPort();<br> switch (nBaud)<br> {<br> case 1200:<br> serial_port_t->setBaudRate(QSerialPort::Baud1200);<br> break;<br> case 2400:<br> serial_port_t->setBaudRate(QSerialPort::Baud2400);<br> break;<br> case 9600:<br> serial_port_t->setBaudRate(QSerialPort::Baud9600);<br> break;<br> case 38400:<br> serial_port_t->setBaudRate(QSerialPort::Baud38400);<br> break;<br> case 115200:<br> serial_port_t->setBaudRate(QSerialPort::Baud115200);<br> break;<br> case 192000:<br> serial_port_t->setBaudRate(QSerialPort::Baud19200);<br> break;<br> default:<br> serial_port_t->setBaudRate(QSerialPort::Baud9600);<br> break;<br> }</p>
<p> switch (oeCheck)<br> {<br> case 0:<br> serial_port_t->setParity(QSerialPort::OddParity);<br> break;<br> case 1:<br> serial_port_t->setParity(QSerialPort::EvenParity);<br> break;<br> case 2:<br> serial_port_t->setParity(QSerialPort::NoParity);<br> break;<br> default:<br> serial_port_t->setParity(QSerialPort::NoParity);<br> break;<br> }</p>
<p> switch (nDatabit)<br> {<br> case 5:<br> serial_port_t->setDataBits(QSerialPort::Data5);<br> break;<br> case 6:<br> serial_port_t->setDataBits(QSerialPort::Data6);<br> break;<br> case 7:<br> serial_port_t->setDataBits(QSerialPort::Data7);<br> break;<br> case 8:<br> serial_port_t->setDataBits(QSerialPort::Data8);<br> break;<br> default:<br> serial_port_t->setDataBits(QSerialPort::Data8);<br> break;<br> }</p>
<p> switch (nStopbit)<br> {<br> case 1:<br> serial_port_t->setStopBits(QSerialPort::OneStop);<br> break;<br> case 2:<br> serial_port_t->setStopBits(QSerialPort::TwoStop);<br> break;<br> default:<br> serial_port_t->setStopBits(QSerialPort::OneStop);<br> break;<br> }</p>
<p> serial_port_t->setFlowControl(QSerialPort::NoFlowControl);</p>
<p> if (!serial_port_t->open(QIODevice::ReadWrite))<br> {<br> CLogWrite::LogWriteEX(LOG_ERROR, __FUNCTION__, __LINE__, 999999, "Open COM: %s Failed %d %d %d %d",<br> szCom, nBaud, oeCheck, nDatabit, nStopbit);<br> return;<br> }<br> else<br> {<br> CLogWrite::LogWriteEX(LOG_ERROR, __FUNCTION__, __LINE__, 999999, "Open COM: %s Succeed %d %d %d %d",<br> szCom, nBaud, oeCheck, nDatabit, nStopbit);<br> }</p>
<p> connect(serial_port_t, &QSerialPort::readyRead, this, &CLasairManage::read_date);<br>}</p>
<p>2、minicom工具</p><br><br>
来源:https://www.cnblogs.com/hysea2019/p/10972543.html
頁:
[1]