打印

STM32+拨码开关 怎么把读取的电平值转换为十六进制

[复制链接]
4594|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用STM32单片机的8个IO口连接了一个8位的拨码开关,每一个位都可以读取高低电平1或0,想把这8个电平值转换为一个16进制的数,因为要用它做识别码  但不知道转换代码怎么写。。。

使用特权

评论回复

相关帖子

沙发
15625004279| | 2021-7-23 10:35 | 只看该作者
2进制转16进制(8位开关就是对应1个2进制的8个位 00000000,通过改变8位的0和1来实现啊,最大只能255,HEX为FF)

使用特权

评论回复
板凳
blueinvestors|  楼主 | 2021-7-24 09:01 | 只看该作者
15625004279 发表于 2021-7-23 10:35
2进制转16进制(8位开关就是对应1个2进制的8个位 00000000,通过改变8位的0和1来实现啊,最大只能255,HEX ...

设计原理就是这样
就是程序里怎么把8个电平值转换为一个16进制的数

使用特权

评论回复
地板
tyw| | 2021-7-24 10:30 | 只看该作者
本帖最后由 tyw 于 2021-7-24 10:31 编辑

C语言将二进制数N转换成16进制的程序

1 输入的二进制数存成字符串;

2 遍历每位字符,并将其转为整数;

3 以16进制输出。


使用特权

评论回复
5
zhaoyu2005| | 2021-7-26 10:53 | 只看该作者
正好8位,一次读取电平状态,无符号数不正好是2位十六进制数,还用转换?如果是因为不在一个口上,或者顺序问题,或者位置问题,那就定义顺序,放到一个8位无符号变量的对应位就行了,无非就 移位  与 赋值这些操作

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

31

帖子

1

粉丝