新闻中心

EEPW首页>嵌入式系统>设计应用> STM32单片机编程printf()函数重定向

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

作者: 时间:2016-11-26 来源:网络 收藏

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

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

intfputc(int ch,FILE*f)

本文引用地址://m.amcfsurvey.com/article/201611/321820.htm

{

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()函数。


评论


技术专区

关闭