1.QString存储十六进制内容
我要发送的十六进制内容是 01 05 04 01 00
将其储存在QString字符串中
1 QString str;
2 str = "0105040100";
2.核心语句
将两位的字符串转换为16进制的Int型数字,然后通过强制类型转换成char类型的字符。
(具体作用方式我还没去看,但是有用)
(char)str.mid(i, 2).toInt(&ok, 16)
3.编写函数进行转换
创建一个返回类型为QByteArray的函数 Hexstring2QByteArray
通过每两位两位的方式将所有内容转为char再用QByteArray进行尾部添加
1 QByteArray Hexstring2QByteArray(QString str)
2 {
3 QByteArray Hexstr;
4 bool ok;
5 for (int i = 0; i < str.size(); i += 2)
6 {
7 Hexstr.append((char)str.mid(i, 2).toInt(&ok, 16));
8 }
9 return Hexstr;
10 }
这个函数能够将16进制内容的QString字符串转为QByteArray数组进行发送
结果如图所示,这是串口工具接收到的我的程序发回的16进制QByteArray