Openstm32(GCCコンパイラ)でSTM32F407を使用しています。sprintf("...%d",integer) を使用するとプログラムがクラッシュするようですが (デバッガーは sprintf で直接停止します)、sprintf("string") を使用すると正常に動作するようです。誰かが何が間違っているのか考えていますか?
int main(void)
{
TM_MPU6050_t MPU6050_Data;
char str[120];
/* Initialize system */
SystemInit();
/* Initialize USART, PB6, PB7*/
TM_USART_Init(USART1, TM_USART_PinsPack_2, 57600);
/* Initialize MPU6050 sensor SCL: PA8, SDA: PC9 */
if (TM_MPU6050_Init(&MPU6050_Data, TM_MPU6050_Device_0, TM_MPU6050_Accelerometer_2G, TM_MPU6050_Gyroscope_2000s) != TM_MPU6050_Result_Ok) {
/* Display error to user */
TM_USART_Puts(USART1, "MPU6050 Error\n");
/* Infinite loop */
while (1);
}
while (1) {
sprintf(str,"Test");
TM_USART_Puts(USART1, str);
for(int i=0;i<8000000;i++); //delay
TM_MPU6050_ReadAll(&MPU6050_Data);
int i=MPU6050_Data.Accelerometer_X;
sprintf(str, "Acceleration X: %d",5); //Crash
TM_USART_Puts(USART1, str);
for(int i=0;i<8000000;i++); //delay
}
}