STM32 如何重写fputs函数 5
我不喜欢使用库函数,我想自己操作寄存器,重新定向串口,使用printf函数,输出我想要的。求如何改写底层驱动函数intfputc(intch,FILE*fp);...
我不喜欢使用库函数,我想自己操作寄存器,重新定向串口,使用printf函数,输出我想要的。 求如何改写底层驱动函数int fputc(int ch,FILE *fp);
展开
2个回答
展开全部
重定向与你使用库函数或是寄存器无关,下面的库函数的重定向方法,把库函数改成对应寄存器操作即可
int fputc( int ch, FILE *f )
{
USART_SendData(USART1,(u8) ch );
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
return ch;
}
int fputc( int ch, FILE *f )
{
USART_SendData(USART1,(u8) ch );
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
return ch;
}
追问
2014-12-27 20:44 int fputc(int ch,FILE *fp)
{
USART1->DR=ch;
while(!(USART1->SR & (1<<7))) ; //等待上一次发送完成
return ch;
}
这样可否是正确的改写,是否这样该写后,我就可以使用printf 打印到串口。或者用你的库函数,设置后,我就可以printf 到串口了??????
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询