注意类型转换——串口传输

情景: 最近弄串口传输,在QT做好的GUI上发送一个指令给单片机,然后由单片机去返回一个值。

 

问题出来了,GUI上发送的指令成功,并且单片机也接收了发出数据,但是为什么GUI上显示不出来了?惊讶

 

看了许多网页,和盆友的讨论之后,发现串口助手上面一般分为两部分“字符—字符”和“字符—HEX”,而我不才,竟然发送整型数据而不自知,结果在这点上纠结半天。本以为只是发送一个个位数字很简单,不想在GUI如果要直接显示的话,还是转成字符串。(狂汗!~敲打

整型转成字符串的函数有两个——itoa和sprintf。

——itoa,是非标准C语言的扩展函数,换句话说就是它不是C标准库中的函数,而是Windows平台下扩展的。

        (而我是要在单片机中使用这类函数,所以itoa是不允许的)

——sprintf,则选择这个。使用简单,如

        char str[255];

  sprintf(str, "%x", 100); //将100转为16进制表示的字符串(如果想转成十进制,就是“%d”了)

 

这样,我的上下位机的简单通信就好了。也没啥好说的,就是需要注意类型的问题。希望不要有人犯我这种低级错误。

PS:当然,也可以在QT上面对传过去的数据做个处理让其显示出来,但现在还没学到那一步。就希望若有人不小心看到这个,也不小心一下可以帮我解答下,就万分感谢了。偷笑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值