// 发送单个字符
void usart_send_char(USART_TypeDef* USARTx, char ch) {
USART_SendData(USARTx, (uint8_t)ch); // 写入数据寄存器
while (USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET); // 等待发送完成
}
// 发送字符串
void usart_send_string(USART_TypeDef* USARTx, char *str) {
while (*str) {
usart_send_char(USARTx, *str++);
}
}
// 接收单个字符(阻塞)
char usart_receive_char(USART_TypeDef* USARTx) {
while (USART_GetFlagStatus(USARTx, USART_FLAG_RXNE) == RESET); // 等待接收完成
return (char)USART_ReceiveData(USARTx); // 读取数据寄存器
}
|