QT下的串口编程我想从串口读数据,但是读第3次的时候程序自动崩溃了

QT下的串口编程我想从串口读数据,但是读第3次的时候程序自动崩溃了,第1张

str2 = list1at(2)+","+list1at(3)+","+listat(4)//

我觉得问题可能在这 因为你每次读到得数据时不一样的 不能确保切割后都能分成4个 对list的越界访问造成程序崩溃 你可以把buf的内容输出看一下 看是不是能分割成四个!

不应该吧。

myCom = new Win_QextSerialPort(portName,QextSerialBase::EventDriven);把这句的QextSerialBase::EventDriven改为QextSerialBase::Polling试试看。

因为你获取到的是字符,转换成ascii后1是31,他再次帮你转换成了ascii 33,31

所以这里不能用toHex,可以尝试toNumber十进制

实际上QT使用串口的时候,直接open串口设备,write发送,事件触发接收更简单。

单片机就没什么好说的了

Qt4:第三方串口接口类;Win_QextSerialPortmyCom;数据:QByteArraytemp=myCom->readAll();长度:templength();Qt5:QSerialPortmy_serialport=newQSerialPort;读取数据:QByteArrayxxx=my_serialport->readAll();长度:xxsize();数据:xxdata();至于说怎么保存到不同的QString这就是解析的问题,你可以随意发挥,反正就是将你得到的数据进行识别、类型转换、存储而已。

单片机接收处理串口的数据的过程就是配置好波特率、位宽、校验位等,收到数据 后可以引起中断,也可以查询标志位,然后进行相应的处理。

1) 串口时钟使能,GPIO 时钟使能。

2) 设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。

3) GPIO 初始化设置:要设置模式为复用功能。

4) 串口参数初始化:设置波特率,字长,奇偶校验等参数。

5) 开启中断并且初始化 NVIC,使能中断(如果需要开启中断才需要这个步骤)。

6) 使能串口。

7) 编写中断处理函数:函数名格式为 USARTxIRQHandler(x 对应串口号)

以上就是关于QT下的串口编程我想从串口读数据,但是读第3次的时候程序自动崩溃了全部的内容,包括:QT下的串口编程我想从串口读数据,但是读第3次的时候程序自动崩溃了、Qt串口通信: myCom = new Win_QextSerialPort(portName,QextSerialBase::EventDriven);、关于QT串口编程与单片机通信的问题,单片机为STM32等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9715987.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存