我正在尝试在STM32CubeIDE中将十进制值转换为字符串,但会收到类似“无效的二进制运算符”的错误。我正在以十进制格式(3695)成功获取'&n'数据,并且需要转换为字符串。请纠正我。
我的代码是-
void main()
{
int n[10];
int a[10];
int i;
while (1)
{
HAL_I2C_Master_Transmit(&hi2c1,0x16, &TxArr, 1, 1000);
HAL_I2C_Master_Receive(&hi2c1, 0x17, &n, 2, 1000);
for(i=0;n>0;i++)
{
a[i]=n%10 +'0';
n=n/10;
}
a[i]='\0';
}
// Length = strlen(buf);
//HAL_UART_Transmit(&huart3, &buf, Length, 100);
// HAL_Delay(300);
通常来说,要将整数转换为字符串,可以使用sprintf
函数。它应该在newlib
甚至newlib-nano
标准C库中都可用。
但是我的猜测是您有一个整数数组,其中每个元素都是0到9之间的数字?
如果是这样,您将遇到几个问题:您似乎像整数而不是地址一样处理变量n
。另外,您的字符串应再长一个元素,并由字符组成。
您可能会执行以下操作:
char a[11];
for(i=0;i<10;i++)
{
a[i]=n[i]%10 +'0';
}
a[11]='\0';