C 如何将整数转换为字符串以在UART上打印整数

C 如何将整数转换为字符串以在UART上打印整数,c,integer,char,C,Integer,Char,我想在uart屏幕上打印一个在程序中计算的整数值。我基本上是在创建一个数据记录系统。用户必须能够查看角色到达的时间 我不能使用printf或snprintf或sprint,因为我正在创建一个时间触发系统,printf需要一些时间来执行。我搜索了stackoverflow并找到了一些想法,但它们似乎不起作用。例如伊图阿, 字符c int i=26; c=(char)i(不起作用,但给出奇怪的字符) 谢谢在您的示例中,您尝试打印26位小数。这不是ASCII字符集中的可打印字符。您必须将2转换为ASC

我想在uart屏幕上打印一个在程序中计算的整数值。我基本上是在创建一个数据记录系统。用户必须能够查看角色到达的时间

我不能使用printf或snprintf或sprint,因为我正在创建一个时间触发系统,printf需要一些时间来执行。我搜索了stackoverflow并找到了一些想法,但它们似乎不起作用。例如伊图阿, 字符c int i=26; c=(char)i(不起作用,但给出奇怪的字符)


谢谢

在您的示例中,您尝试打印26位小数。这不是ASCII字符集中的可打印字符。您必须将2转换为ASCII(十进制50),然后将6转换为ASCII(十进制54)以打印26。换句话说,一次只能有一个数字


您可以通过迭代地将十进制48添加到变量中的每个数字(ASCII零的偏移量),并将ASCII数字从最高有效位加载到最低有效位,然后将其传输到缓冲区。

只需进行数字到ASCII字符的映射。您将如何进行数字到字符的映射,我以前从来没有遇到过这样的过程,好吧,像这样的工作
int new_value[4];焦炉温度[4];内部温度,x;对于(x=0;x<4;x++){new_value[x]=temp%10;temp=temp/10;buf_temp[x]=new_value[x]+48;}