3

我需要将 uint16_t 值转换为字符串。我希望字符串是数字的十进制表示。

示例:uint16_t i=256 字符串:256

我尝试过,itoa(i,string, 10)但是当i值增加时开始打印负值。
我通过串行端口发送字符串。(UART)
有其他选择吗?

4

2 回答 2

1

sprintf%u格式一起使用unsigned int

uint16_t i = 33000;
sprintf(str, "%u", i);
于 2017-08-23T16:26:25.670 回答
0

您可以尝试使用sprintf()常见的“到字符串”转换。例如:

#include <stdio.h>
#include <math.h>

int main() {
   uint16_t i = 256;
   char str[80];

   int str_len = sprintf(str, "%d", i);

   return(0);
}

有关更多信息,请查看这篇文章

于 2017-01-27T11:58:11.020 回答