在stm32中无法直接使用printf()函数,需要1、使用fputc() 进行重定向 2、在keil中 Options-Target-UseMicroLIB勾选上。
1、寄存器
cpp
int fputc(int ch, FILE *f)
{
while((USART1->SR & USART_FLAG_TXE) == RESET);
USART1->DR = (ch & (uint16_t)0x01FF);
return ch;
}
2、标准库函数
cpp
int fputc(int ch,FILE *f)
{
USART_SendDate(USART1,(u8)ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
return ch;
}