微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32单片机编程printf()函数重定向

STM32单片机编程printf()函数重定向

时间:11-26 来源:互联网 点击:

在stm32单片机编程中,可以重定向printf()函数来输出调试信息。

  1. 编写fputc()函数
  2. 其实printf()函数在头文件中被定义成了一个宏,会调用到fputc()函数,但在stm32单片机编程中不可以直接调用标准库的fputc()函数进行输出信息,需要自己编写fputc()函数供printf()函数来调用。编译器进行编译时首先会调用自己编写的fputc()函数,而不是库函数。

intfputc(int ch,FILE*f)

{

USART_SendData(USART1, (uint16_t)ch); //通过串口输出

while(USART_GetFlagStatus(USART1, USART_FLAG_TC) !=SET);//等待输出完毕

return ch;

}

此时假定串口1即USART1可以正常通讯,fputc()函数的作用就是把printf()函数重定向到串口1上输出信息。

  1. 配置
  2. 自己动手写好fputc()后,要在文件中包含stdio.h文件。#include在MDK软件界面单击Target options…按钮,在Code Genetation一栏中选择 Use MicroLIB选项,即完成了配置,此时printf()函数一定重定向到了串口1即USART1上,可以正常使用printf()函数。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top