查看: 86|回覆: 0

[Ubuntu] Ubuntu下访问串口

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2008-3-13
發表於 2019-6-4 11:30:00 | 顯示全部樓層 |閲讀模式

Ubuntu下访问串口
1、首先查看串口列表
dmesg | grep ttyS*
2、增加规则文件
在/etc/udev/rules.d目录下创建tty.rules文件,增加以下内容
KERNEL=="ttyS[0-9]*",MODE:="0777",GROUP:="dialout"
3、保存并重启电脑
4、编写代码,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;
}

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;
}

switch (nDatabit)
{
case 5:
serial_port_t->setDataBits(QSerialPort:ata5);
break;
case 6:
serial_port_t->setDataBits(QSerialPort:ata6);
break;
case 7:
serial_port_t->setDataBits(QSerialPort:ata7);
break;
case 8:
serial_port_t->setDataBits(QSerialPort:ata8);
break;
default:
serial_port_t->setDataBits(QSerialPort:ata8);
break;
}

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;
}

serial_port_t->setFlowControl(QSerialPort::NoFlowControl);

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

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

2、minicom工具



来源:https://www.cnblogs.com/hysea2019/p/10972543.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部