在STM 32 的串口实验中,往往需要把内容打印输出在串口调试助手中,这时就需要重定向c库中的printf()函数,重定向后可使用。
注意下面的FILE的定义在头文件stdio.h中,所以在写程序时需要包含此头文件。
例:
int fputc(int ch,FILE *f)
{
USART_SendData(USART_TypeDef* USARTx, uint8_t Data); //发送一个字节数到串口
while(USART_GetFlagStatus(USART_TypeDef* USARTx, USART_FLAG_TC)==RESET); //等待发送完毕
return(ch);
}
重定向c库函数scanf到串口,重定向后可使用scanf()、getchar()等函数。
int fgetc(FILE *f)
{
while(USART_GetFlagStatus(USART_TypeDef* USARTx, USART_FLAG_TC)==RESET); //等待串口输入数据
return(int)USART_ReceiveData(DEBUG_USARTx);
}