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

[复制链接]
5142|4
 楼主| blueinvestors 发表于 2021-7-22 16:25 | 显示全部楼层 |阅读模式
用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进制输出。


本帖子中包含更多资源

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

×
zhaoyu2005 发表于 2021-7-26 10:53 | 显示全部楼层
正好8位,一次读取电平状态,无符号数不正好是2位十六进制数,还用转换?如果是因为不在一个口上,或者顺序问题,或者位置问题,那就定义顺序,放到一个8位无符号变量的对应位就行了,无非就 移位  与 赋值这些操作
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

31

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部