您的位置:首页 > 其它

STM32中printf重定向到串口

2015-03-31 10:04 302 查看
 STM32中printf重定向到串口 

转载自:http://blog.csdn.net/wdscq1234/article/details/7944036

        学习STM32过程中,经常打交道的莫过于串口,你可以将任何信息,当然重要的是调试信息打印到串口中输出,总是用一个字节发送函数或者字符串发送函数

总是有些不放便,之前编程中熟悉的莫过于printf了,下面就给出了用printf打印到串口的方案,当然方案不止一个,仅供参考。 

1、 添加printf的头文件   #include <stdio.h> 

2、重写int fputc(int ch, FILE *f)函数 

int fputc(int ch, FILE *f);

函数

int fputc(int ch, FILE *f)

{

USART_SendData(USART1, (uint8_t) ch);

while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);

return ch;

}

3、修改一下选中Use MicroLIB   Target——Code Generation——选中Use MicroLIB 

这样就可以像以前那样使用printf了。

重定向C库函数printf到USART1

int fputc(int ch, FILE *f)

{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
return (ch);

}
重定向C库函数scanf到USART1

int fgetc(FILE *f)

{
while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
return (int)USART_ReceiveData(USART1);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: