STM32CubeIDE之printf重定向及串口(USART)输出浮点型数据的修改
stm32CubeIde里想要实现printf重定向时不能像MDK中那样操作。这里记录一下。
方式一
#include "stdio.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
//此处用的是USART2
//你在使用时仅仅需要把’USART2‘改成你的串口就可以了
while ((USART2->SR & 0X40) == 0);
USART2->DR = (uint8_t) ch;
return ch;
}
方式二
#include "stdio.h"//别忘了
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
//同样USART2改为你的串口
HAL_UART_Transmit(&huart2, (uint8_t*)&ch,1,HAL_MAX_DELAY);
return ch;
}
打印浮点数据如何操作?
1、右键->属性
2、设置
3、Miscellaneous
4、输入 -u_printf_float