printf函数调用的是c库中的fputc函数。因此我们如果重新写了fputc函数,就可以改变printf函数的功能,可以向串口打印输出。同理scanf。
重定向printf
//重定向printfint fputc(int ch,FILE* f){//寄存器方式发送字符while(!(USART1->ISR & 1<<7)){};USART1->TDR=ch;return ch;}
重定向scanf
//重定向scanfint fgetc(FILE* f){//寄存器方式接收字符uint8_t ch;while(!(USART1->ISR & 1<<5)){};ch=USART1->RDR;return fputc(ch,NULL);}