STM32 CUBEIDE 串口的使用与printf重定向

1.配置IOC文件

 

 保存后生成代码,没有使用DMA模式

 

2.在main.c或者.h中添加以下代码进行重定向

#ifdef __GNUC__
/* With GCC, 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__ */

/**
  * @brief  Retargets the C library printf function to the USART.
  * @param  None
  * @retval None
  */
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART3 and Loop until the end of transmission */
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

  return ch;
}

 

3.设置可以输出float型变量的printf函数

项目管理器中右键项目选择properties选项(快捷键为alt+enter)

 

按照以下步骤将两个选项打对号

 

 

 4.测试结果

 

 

 

 

posted @ 2021-10-01 10:02  Lxk-  阅读(1605)  评论(0编辑  收藏  举报