瑞瑞瑞 發表於 2019-6-4 11:30:00

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-&gt;setBaudRate(QSerialPort::Baud1200);<br>                break;<br>        case 2400:<br>                serial_port_t-&gt;setBaudRate(QSerialPort::Baud2400);<br>                break;<br>        case 9600:<br>                serial_port_t-&gt;setBaudRate(QSerialPort::Baud9600);<br>                break;<br>        case 38400:<br>                serial_port_t-&gt;setBaudRate(QSerialPort::Baud38400);<br>                break;<br>        case 115200:<br>                serial_port_t-&gt;setBaudRate(QSerialPort::Baud115200);<br>                break;<br>        case 192000:<br>                serial_port_t-&gt;setBaudRate(QSerialPort::Baud19200);<br>                break;<br>        default:<br>                serial_port_t-&gt;setBaudRate(QSerialPort::Baud9600);<br>                break;<br>        }</p>
<p>        switch (oeCheck)<br>        {<br>        case 0:<br>                serial_port_t-&gt;setParity(QSerialPort::OddParity);<br>                break;<br>        case 1:<br>                serial_port_t-&gt;setParity(QSerialPort::EvenParity);<br>                break;<br>        case 2:<br>                serial_port_t-&gt;setParity(QSerialPort::NoParity);<br>                break;<br>        default:<br>                serial_port_t-&gt;setParity(QSerialPort::NoParity);<br>                break;<br>        }</p>
<p>        switch (nDatabit)<br>        {<br>        case 5:<br>                serial_port_t-&gt;setDataBits(QSerialPort::Data5);<br>                break;<br>        case 6:<br>                serial_port_t-&gt;setDataBits(QSerialPort::Data6);<br>                break;<br>        case 7:<br>                serial_port_t-&gt;setDataBits(QSerialPort::Data7);<br>                break;<br>        case 8:<br>                serial_port_t-&gt;setDataBits(QSerialPort::Data8);<br>                break;<br>        default:<br>                serial_port_t-&gt;setDataBits(QSerialPort::Data8);<br>                break;<br>        }</p>
<p>        switch (nStopbit)<br>        {<br>        case 1:<br>                serial_port_t-&gt;setStopBits(QSerialPort::OneStop);<br>                break;<br>        case 2:<br>                serial_port_t-&gt;setStopBits(QSerialPort::TwoStop);<br>                break;<br>        default:<br>                serial_port_t-&gt;setStopBits(QSerialPort::OneStop);<br>                break;<br>        }</p>
<p>        serial_port_t-&gt;setFlowControl(QSerialPort::NoFlowControl);</p>
<p>        if (!serial_port_t-&gt;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, &amp;QSerialPort::readyRead, this, &amp;CLasairManage::read_date);<br>}</p>
<p>2、minicom工具</p><br><br>
来源:https://www.cnblogs.com/hysea2019/p/10972543.html
頁: [1]
查看完整版本: Ubuntu下访问串口