/*函数声明----------------------------------------------------------------------------*/ void UART_Init(unsigned long UART_baud); //波特率,如115200 int fputc(int ch, FILE *f); //fputc重定向 int fgetc(FILE *f); //fgetc重定向
#endif
下面是.C的部分内容,省去了初始化的部分,自己看着写好了 /******************************************************************************* * Function Name : int fputc(int ch, FILE *f) * Description : Retargets the C library printf function to the USART.printf重定向 * Input : None * Output : None * Return : None *******************************************************************************/ int fputc(int ch, FILE *f) { /* Write a character to the USART */ USART_SendData(USART1, (u8) ch);
/* Loop until the end of transmission */ while(!(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == SET)) { }
return ch; }
/******************************************************************************* * Function Name : int fgetc(FILE *f) * Description : Retargets the C library printf function to the USART.fgetc重定向 * Input : None * Output : None * Return : 读取到的字符 *******************************************************************************/ int fgetc(FILE *f) { /* Loop until received a char */ while(!(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET)) { }
/* Read a character from the USART and RETURN */ return (USART_ReceiveData(USART1)); }