在使用stm32的usart发送数据时,发现发送数据非常的鸡肋,不同数据格式的数据需要处理,这时十分想念当初的printf函数,随意发送想要的数据,,stm32也能使用printf,但是需要将“stdio.h”函数库中的printf重定向,因为printf()函数的实现时使用fputc()和putchar()函数,编译器在编译时会优先选择文件中的这两个函数,所以自己可以编写以上的两个函数,修改发送的部分,实现重定向,以下是fputc()的重定向函数,使用usart发送数据
fputc()的重定向函数:
int fputc(int ch,FILE *fp)
{
while(!USART_GetFlagStatus(USART1, USART_FLAG_TXE));
USART_SendData(USART1, ch);
while(!USART_GetFlagStatus(USART1, USART_FLAG_TC));
return 0;
}