C uint8_t数组和附加数据

C uint8_t数组和附加数据,c,arrays,string,uint8t,C,Arrays,String,Uint8t,大家好,我有这个问题我有一个uint8\t数组 uint8\u t命令文本[256] 我从adc读取一些数据,我使用snprintf转换uint8\t中的数据浮点 ` float aux; uint8_t value[4]; aux=(float)(HAL_ADC_GetValue(&hadc)) snprintf(value,4,"%.0f",aux); //convert the data float to uint8_t strcat(command_Text, val

大家好,我有这个问题我有一个uint8\t数组

uint8\u t命令文本[256]

我从adc读取一些数据,我使用snprintf转换uint8\t中的数据浮点

` float aux;
uint8_t value[4];  
aux=(float)(HAL_ADC_GetValue(&hadc))
 snprintf(value,4,"%.0f",aux);   //convert the data float to uint8_t
 strcat(command_Text, value);   //append data `
我发现类型为“uint8\u t*”的警告参数与类型为“char const”的参数不兼容*
我不知道如何将uint_8数据中的字符串manipolate,我希望读取数据e将其附加到数组中,您能帮我吗?

建议如下:

uint8_t command_Text[256] = {'\0'};
....
uint8_t value[4] = {'\0'};  
snprintf(value,3,"%3.3u", atoi( HAL_ADC_GetValue( &hadc ) ) );   
strcat(command_Text, value);   //append data

snprintf采用“char*”参数,而不是“unsigned char*”将
值声明为
char[4]
对于某些嵌入式设备来说,这看起来很像。第一条规则是在可以避免的地方不要使用浮点运算。由于ADC很可能不会产生浮点结果,所以很有可能您可以在代码的其余部分使用整数,可能是模拟分数或定点运算。也就是说,您不应该使用
优先级ntf
scanf
家族,因为他们是代码膨胀的。谁曾否决过这个答案,请发表评论,解释为什么否决。