stm32如何将16位二进制数转换为十进制数

stm32如何将16位二进制数转换为十进制数

         BUF=GPIOE->INDR;
         buf2[number]   = BUF&0XFF;
         buf2[number+1] =(BUF>>8)&0XFF;

通过以上代码读取到了GPIOE的输入数据,并分成高八位和低八位,如何再将其转换为十进制数?

可以使用C语言中的类型转换函数将16位二进制数转换为十进制数。具体实现代码如下:

c
uint16_t buf = gpioe->indr; // 读取16位二进制数
uint8_t low_byte = buf & 0xFF; // 取低八位
uint8_t high_byte = (buf >> 8) & 0xFF; // 取高八位

// 将高八位和低八位组合成一个16位数
uint16_t value = (high_byte << 8) | low_byte;

// 将16位数转换为十进制数并打印输出
printf("%d\n", value);
其中,value即为转换后的十进制数。如果对你有帮助的话,请给我一个采纳,谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^