STM32—printf函数重定义
  为了便于调试,我们经常要使⽤到printf函数,打印出调试的信息。在Keil软件中,要使⽤printf输出函数的话,注意需要先把use MicrolLIB选项选上,如下图。
  接着 ,在main函数的添加头⽂件下⽅添加printf函数的声明,代码如下:
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "stm32f4xx_hal.h"
// 添加的代码如下,进⾏函数重构
#ifdef __GNUC__            //gcc编译器宏定义
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
biography可数吗#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)canva模板
c语言函数定义的基本要素#endif /* __GNUC__ */
/*上⾯的意思是:
如果定义了宏__GNUC__,即使⽤GCC编译器,则定义宏#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
putchar函数如果没有定义宏__GNUC__,即不使⽤GCC编译器,则定义宏#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)  */
dos命令提示符//添加printf重构函数的实现部分
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
decision in process
  在mian函数的while(1)循环中添加打印输出函数,测试效果。
while (1)
{
printf("printf teset\r\n");//打印输出
HAL_Delay(1000);//延时1S
}
  测试效果如下图,可是实现printf函数的打印。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。