1、通过printf输出浮点数需要如下设置:
在工程属性下找到C/C++ build->Settings->Tool Settings->C Linker->Miscellaneous->Other options 选项空中填写:-u_printf_float即可。到此为止TrueStudio即可支持printf的所有数据类型输出
2、在usart.c中添加如下函数即可让TrueStudio支持printf输出注意代码必须添加在USER CODEBEGIN x和USER CODE ENDX之间,否则下次设置cube生成会自动丢掉)
/* USER CODE BEGIN 1 *///加入以下代码支持printf函数#ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endif /* __GNUC__ */PUTCHAR_PROTOTYPE{ /* Place your implementation of fputc here */ /* 使用的串口可根据实际配置修改 */ HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); return ch;}int _write(int32_t file, char *ptr, int len){ int DataIdx; for (DataIdx = 0; DataIdx < len;DataIdx++) { __io_putchar(*ptr++); } return len;}/* USER CODE END 1 */
3、在使用printf的时候,在打印数据完成后一定要有printf("\n"),也就是必须要打印换行符,不然数据打印不出来!!!