printf函数的疑问

2019-07-21 04:25发布

在探索者库函数程序里,uart.c中有对printf的支持
代码如下
//////////////////////////////////////////////////////////////////
#if 1
#pragma import(__use_no_semihosting)             
            
struct __FILE 

int handle; 
}; 

FILE __stdout;       
   
_sys_exit(int x) 

x = x; 


int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0); 
USART1->DR = (u8) ch;      
return ch;
}
#endif

这些代码不太懂啊,是重新写了库函数吗?
为什么做了这些处理,就可以使用printf输出字符到串口了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。