STM32 的 printf() 函数串口重定向(HAL库标准库都适用)

Posted xingboy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32 的 printf() 函数串口重定向(HAL库标准库都适用)相关的知识,希望对你有一定的参考价值。

1.建立工程

2.核心:添加新文件usar_fputc.c (名字随便自己命名),把文件添加到项目中去 

  #include "stdio.h"
  #include "stm32f1xx_hal.h"

  extern UART_HandleTypeDef huart1;
  uint8_t ch;
  uint8_t ch_r;

  //重写这个函数,重定向printf函数到串口
  /*fputc*/
  int fputc(int c, FILE * f)
  {
    ch=c;
    HAL_UART_Transmit(&huart1,&ch,1,1000);//发送串口
    return c;
  }

 

  //重定向scanf函数到串口 意思就是说接受串口发过来的数据
  /*fgetc*/
  int fgetc(FILE * F)
  {
    HAL_UART_Receive (&huart1,&ch_r,1,0xffff);//接收
    return ch_r;
  }

3.修改main.c 文件

  #include "stdio.h" /*添加头文件 */

  在main()函数里添加测试代码:printf(" ===函数Printf函数发送数据=== ");  //测试内容

4.打开串口助手测试最终效果如图:

  技术分享图片

 

















以上是关于STM32 的 printf() 函数串口重定向(HAL库标准库都适用)的主要内容,如果未能解决你的问题,请参考以下文章

STM32 的 printf() 函数串口重定向(HAL库标准库都适用)

STM32串口的介绍与使用(原理结构体发送字符串printf函数重定向)

怎么解决STM32中不能使用printf函数的问题

STM32串口打印的那些知识

STM32串口打印的那些知识

stm32CubeMx上移植自己的printf()和scanf()函数