QT5自制串口助手(4)数据收发

上一章:QT5自制串口助手(3)设置与打开关闭串口

  1. 编写发送
    和之前一样右击发送按钮。在这里插入图片描述
    在这里插入图片描述
    这里我们先判断串口有没有打开,如果打开了转成utf-8编码发送,然后把发送内容显示出来,否则弹出一个警告对话框。
  2. 编写接收

其实接收有两种方式,一种是接完后读取,一种是定时去读取,这里我用的是定时读取。

先添加一个定时器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里当定时器每次到达设置的时间后都会触发一次槽函数,我们在槽函数里面把串口缓冲区的所有数据都读出来,然后显示出来。

这里我们的超时时间是控件FRAMEDELAY的值,所以我们要限制这个输入只能为数字,否则设置为20。
在这里插入图片描述
右键输入行,选择editingFinished(),这个函数是在输入行输入了回车或者失去选中时触发。
在这里插入图片描述
当toInt()参数不能转换为数字时,返回0。
在这里插入图片描述
把控件默认值改为20。

最后我们在串口打开时开启定时器,在串口关闭时关闭定时器。
在这里插入图片描述
在这里插入图片描述

  1. 增加清屏

和之前一样添加清屏的槽函数,函数内把显示控件清空就行了。
在这里插入图片描述

最后回环效果如图:
在这里插入图片描述
细心的朋友会发现当定时时间很短,发送中文时会显示乱码,这是因为比如一个中文占用3个字节,当发送10个中文的时候,如果发送到第5个中文的第二个字节定时器超时触发了,那么中间一个中文字符就会被割裂,造成乱码,解决方法可能要在接收时加判断。如果不用定时器,直接使用readyRead信号,则可以不用考虑。
大致是在开启串口时绑定readyRead信号触发ReadData()函数,然后在函数内readAll。具体实现不再详细讲解。
在这里插入图片描述
下一章:QT5自制串口助手(5)数据显示

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值