原文链接:https://www.cnblogs.com/ybqjymy/p/18066881
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进行尾部添加
QByteArray Hexstring2QByteArray(QString str)
{
QByteArray Hexstr;
bool ok;
for (int i = 0; i < str.size(); i += 2)
{
Hexstr.append((char)str.mid(i, 2).toInt(&ok, 16));
}
return Hexstr;
}
这个函数能够将16进制内容的QString字符串转为QByteArray数组进行发送
结果如图所示,这是串口工具接收到的我的程序发回的16进制QByteArray