stm32数据16进制转10进制
时间: 2025-02-17 11:13:50 浏览: 95
### STM32 十六进制转十进制示例代码
对于STM32平台而言,实现将十六进制字符串转换为十进制数值的过程可以通过多种方式完成。下面展示了一种常见的方式,在此过程中,程序会读取一个表示十六进制数的字符串并将其转化为相应的十进制整型值。
```c
#include "stm32f1xx_hal.h"
uint32_t hexStringToDecimal(const char* str) {
uint32_t result = 0;
while (*str != '\0') {
char c = *str++;
if (c >= '0' && c <= '9')
result = result * 16 + (c - '0');
else if (c >= 'A' && c <= 'F')
result = result * 16 + (c - 'A' + 10);
else if (c >= 'a' && c <= 'f')
result = result * 16 + (c - 'a' + 10);
}
return result;
}
```
上述C语言函数`hexStringToDecimal()`可以用来把由字符组成的十六进制字符串转变为无符号长整形(`uint32_t`)类型的十进制数值[^1]。当接收到一串代表十六进制的数据时,调用这个方法就可以得到其对应的十进制形式。
为了验证这段代码的有效性和实用性,可以在实际应用中创建测试案例来检验不同输入情况下的输出是否正确。例如:
```c
void test_hex_to_decimal() {
const char* testData[] = {"ABCD", "78FF", "1A2B"};
uint32_t expectedResults[] = {43981, 30975, 6707};
for(int i=0; i<sizeof(testData)/sizeof(char*); ++i){
uint32_t actualResult = hexStringToDecimal(testData[i]);
printf("Test %d: Expected=%lu Actual=%lu\n", i+1, expectedResults[i], actualResult);
}
}
```
通过执行这些测试用例,能够确认所编写的转换逻辑是否满足预期需求[^2]。
阅读全文
相关推荐


















