
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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)