米尔电子
直播中

岳洋

3年用户 174经验值
擅长:嵌入式技术,EMC/MEI设计,处理器/DSP
私信 关注
[技术]

【米尔MYD-YT507开发板试用体验】ubuntu下QT串口助手开发调试

上次我们测试完QT之后,我们还能创建一个串口终端,因为这些都是QT自己本身就带的功能,如果有3D应该还可以跑下QT 3D效果,本开发板的全志芯片也是带了GPU的,显示3D难度应该会好很多。本次的话我们还是先体验下QT开发串口调试助手,这样我们能用串口接一些传感器了。

image.png

首先使用QT5的串口,只需要在头文件中添加上QT += serialport。这样就能使用串口库了。

image.png

然后我们还是在之前的基础上完善内容,首先是就是端口要声明使用QSerialPort 新建一个。然后我们再添加一个定时器,定时去读取获得的数据。
image.png

之后就是主函数中直接添加,我们这里使用的串口就是米尔在设备里提供的,印象中有四个有ttyS0,ttyS2,ttyS3,ttyS5。他这个都是对应的,对应了板子原理图中的串口0,2,3,5。

my_serialport = new QSerialPort(this);

my_serialport->setPortName("/dev/ttyS2");

//以读写方式打开串口

if(my_serialport->open(QIODevice::ReadWrite))

{

//设置波特率

my_serialport->setBaudRate(QSerialPort::Baud115200,QSerialPort::AllDirections);

//设置数据位

my_serialport->setDataBits(QSerialPort::Data8);

//设置校验位

my_serialport->setParity(QSerialPort::NoParity);

//设置流控制

my_serialport->setFlowControl(QSerialPort::NoFlowControl);

//设置停止位

my_serialport->setStopBits(QSerialPort::OneStop);

//每秒读一次

timer = new QTimer(this);

connect(timer, SIGNAL(timeout()), this, SLOT(readComDataSlot()));

timer->start(1000);


}

else

{

QMessageBox::about(NULL, "提示", "串口没有打开!");

return;

}

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::readComDataSlot()

{

QByteArray info = my_serialport->readAll();

qDebug() << info;

}


上面是具体代码,这里面也使用了信号槽的概念,暂时我们没有在ui中体现接收到的数据。所以我们使用qDebug()直接打印出来,在我们QT creator中底部有终端直接显示的。

然后我们外接USB转TTL的,这里没用串口终端ttyS0因为我发现好像打不开,没反应,所以我换了。

image.png

我们找原理图,发现一个端子上就有我们TTL的所以直接接串口2即可。

image.png

如上图。

image.png

然后win终端打开串口助手,发送。QT这边能接收到。

image.png

这个换一个字符测试。都是可以的。虽然这个都显示在一起,但是实际是板子的终端界面在win上,win上实际就是一个串口助手发送。至此QT串口助手测试完成了。

更多回帖

发帖
×
20
完善资料,
赚取积分