在C中将int转换为char的问题

在C中将int转换为char的问题,c,stm32,cortex-m3,C,Stm32,Cortex M3,我编写了一个用于调试的小函数,它通过USB将字符串发送到终端: void localprint(char* msg){ if(strlen(msg) > 60){ usb_sendData(msg,60); } else usb_sendData(msg,strlen(msg)); } 该函数适用于以下字符串: localprint(" I'm a test" ), 该消息显示在终端上。 现在我想获取终端上的adcValue,它是一个int,因为我已经尝试了:

我编写了一个用于调试的小函数,它通过USB将字符串发送到终端:

void localprint(char* msg){
if(strlen(msg) > 60){
            usb_sendData(msg,60);
}
else usb_sendData(msg,strlen(msg));
} 该函数适用于以下字符串:

localprint(" I'm a test" ), 
该消息显示在终端上。 现在我想获取终端上的
adcValue
,它是一个
int
,因为我已经尝试了:

char t= (char)(((int)'0')+getADCValue(9)); // getting the ADC value of 0th channel 
localprint(&t);
这根本不起作用,我也试过:

char t= (char) getADCVAlue(9);
localprint(&t);
它也不起作用。所以我的问题是,你知道我该怎么做吗。我使用的是uC STM32f10xx和ARM gcc。
感谢您提供的任何提示

在不知道任何可能的整数范围的情况下,类似这样的提示将起作用:

char buffer[32];
sprintf(buffer, "%d", getADCVAlue(9));
localprint(buffer);
既然你做了
0+
,我假设它是一个数字,所以你可以去

char buffer[2];
buffer[0] = '0' + getADCVAlue(9);
buffer[1] = '\0';
localprint(buffer);

如果您用一些轻量级的实现来替换
sprintf
,例如
xsprintf
,那么来自John3136的答案将很好,我发现这对嵌入式编程非常有帮助。或者,如果要使用
sprintf
,则必须为系统调用(如
\u sbrk
)设置一些存根


我无法评论来自JHN3136的解决方案,因为我没有足够的声誉。

谢谢你的回答,我尝试使用,但只得到0。我更改了缓冲区的大小,但没有帮助。sprintf给了我一个错误,未定义对“\u sbrk”的引用,顺便说一下,它的4位数字