很多小伙伴想在编程STM32的时候使用printf函数输出,在STM32CUBE里的配置我就不讲了,主要讲一些需要注意的地方
一、勾选mircoLIB
二、引入头文件
#include "stdio.h"
三、需要定义的结构体
struct FILE {
int handle;
};
四、重定向函数
方法1:
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//循环发送,直到发送完毕
USART1->DR = (uint8_t) ch;
return ch;
}
方法2:
int fputc(int ch,FILE *f)
{
uint8_t temp[1]={ch};
HAL_UART_Transmit(&huart1,temp,1,2);
return ch;
}
另外需要提醒下,如果在别的地方引用printf,因为是stdio里的函数,所以也是需要引用”“stdio.h”头文件的