stm32 16进制转十进制
时间: 2024-09-17 18:04:59 浏览: 45
STM32微控制器通常处理的是二进制数据,但在程序中,你可能会需要将十六进制数转换成十进制数。这通常是通过字符串解析或者位操作来完成的。以下是使用C语言的一个简单示例:
```c
#include "stm32f10x.h"
#include <string.h>
#include <stdio.h>
uint32_t hex_to_dec(char hex[])
{
uint32_t decimal = 0;
int i = 0;
while (hex[i] != '\0') {
if (hex[i] >= '0' && hex[i] <= '9')
decimal = decimal * 16 + hex[i] - '0';
else if (hex[i] >= 'A' && hex[i] <= 'F')
decimal = decimal * 16 + hex[i] - 'A' + 10;
else if (hex[i] >= 'a' && hex[i] <= 'f')
decimal = decimal * 16 + hex[i] - 'a' + 10;
i++;
}
return decimal;
}
int main(void)
{
char hex_string[] = "FF"; // 十六进制数
uint32_t dec_value = hex_to_dec(hex_string);
printf("Hexadecimal %s equals to Decimal: %u\n", hex_string, dec_value);
return 0;
}
```
在这个例子中,`hex_to_dec`函数接受一个十六进制字符串作为输入,然后逐个字符计算其对应的十进制值,并累加到结果上。
阅读全文