在C 语言标准库中,fputc 函数是printf 函数内部的一个函数,功能是将字符ch 写入到文件指针file所指向文件的当前写指针位置,简单理解就是把字符写入到特定文件中。我们使用USART 函数重新修改fputc 函数内容,达到类似“写入”的功能。fgetc 函数与fputc 函数非常相似,实现字符读取功能。在使用scanf 函数时需要注意字符输入格式。还有一点需要注意的,使用fput 和fgetc 函数达到重定向C 语言标准库输入输出函数必须在MDK的工程选项把“Use MicroLIB”勾选上,MicoroLIB 是缺省C 库的备选库,它对标准C 库进行了高度优化使代码更少,占用更少资源。
//重定向c库函数printf到串口,重定向后可使用printf函数
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
return (ch);
}
//重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数
int fgetc(FILE *f)
{
while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
return (int)USART_ReceiveData(USART1);
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ZipingPan/article/details/137313753
|