找回密码
 注册
关于网站域名变更的通知
查看: 301|回复: 4
打印 上一主题 下一主题

串口中16进制数值合并及转换10进制输出

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-29 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于数据回传显示的问题。- v& m$ G' d7 s
开发板:arduino uno0 }- r# r3 i% ?
传感器:超声波
! z- v8 C8 J; l  ]$ Z$ r6 z通过串口获取到超声波的值是(举例)4 L% E6 Q" f! J; G* u6 g# F
FF  01  DE  39
5 E* x# X" T5 J6 \! J, yFF  02  FF   41
4 v# a) a7 L; J8 p  j& M...5 s7 n9 P, C* o2 w3 R
目前已知  中间两位是实际的距离值,有效值。5 y  R, _  ^$ o3 H0 N; ~( {
请问如何将中间的两位单独获取到(01  DE)(02  FF)
  B, N8 x8 h+ l% H另外还需要将获取的两位数合并(01DE)(02FF)
1 E* t- p* G+ P  F' _3 i" d! N并将01DE,02FF 转成十进制数显示
* J) j3 u2 k4 A) g2 Q! `; z01DE   十进制   478$ ^: `: l8 u) _
02FF    十进制   767
( R& g. S5 Q8 P: O感谢!
; U  z8 `5 O3 J0 f$ ^. s" f: L
( v5 o8 x4 k0 C$ P) L5 `4 p$ C3 u8 D$ n9 P. g

该用户从未签到

2#
发表于 2022-9-29 13:03 | 只看该作者
发送10进制数,有相应的函数啊

该用户从未签到

3#
发表于 2022-9-29 13:30 | 只看该作者
你这串口发送出来的是4个字节,想要中间两个数据,就只发送中间两个字节就可以了。

该用户从未签到

4#
发表于 2022-9-29 13:32 | 只看该作者
如果需要合并,可以把两个字节变成一个数的高8位和低8位,网上可以制造一个变化函数

该用户从未签到

5#
发表于 2022-9-29 13:57 | 只看该作者
如果你知道哪个是第一个数据,那么后面两个数据你就能获取到,两个16进制数变成一个10进制数,那高位乘以256加低位数就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-3 02:02 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表