QT串口通信怎么发送十六进制字符串?

龚建伟老师编写的串口调试助手里面有个十六进制的发送和接收功能,不知道有没有哪位尝试过在QT里面实现同样的功能?就是对于类似“02e3a2f5d6”的字符串作为一个十六进制... 龚建伟老师编写的串口调试助手里面有个十六进制的发送和接收功能,不知道有没有哪位尝试过在QT里面实现同样的功能?就是对于类似“02e3a2f5d6”的字符串作为一个十六进制字符串发送,而不是作为普通的字符串发送,我看了他写的源代码,里面有一个字符串转换函数,这个函数可以直接拿过来用,但是使用qextserialport类进行发送的时候,出现了一点小问题,就是当字符的ASCII码值大于127时,会将最高位省略,比如发送"f5",收到的字符转换为十六进制后变成"75",如果你们有兴趣,可以帮我看看,十分感谢!! 展开
 我来答
zyl102600
推荐于2017-11-25 · TA获得超过678个赞
知道小有建树答主
回答量:702
采纳率:100%
帮助的人:715万
展开全部
类似“02e3a2f5d6”的字符串,可以用字符拆分的方式进行分解,可以分解到QByteArray对象中
给你一个拆分类似 "12 35 AB 25 CD"字符串的函数,自己再稍加改动就可以用了

QByteArray HEXStringToArr(QString hexstr)
{
QByteArray qrst;
hexstr=hexstr.trimmed();
hexstr=hexstr.replace("",",");
QStringList sl=hexstr.split(",");
foreach(QString s,sl)
{
if(!s.isEmpty())
qrst.append((char)s.toInt(0,16)&0xFF);
}
return qrst;
}
创作者XXGDQ4kMbU
2012-04-12 · TA获得超过1281个赞
知道小有建树答主
回答量:371
采纳率:66%
帮助的人:429万
展开全部
楼主我搞过这个东西.
而且已经解决16机制问题.如果你要代码可以贴邮箱上来.
不过我的程序只可以在window平台上运行.

那我帮不了你了...............
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式