我正在研究 STM32 Discovery(F10x 系列),我正在尝试通过 USART1 发送和接收数据。
int uart_putc(int c, USART_TypeDef* USARTx)
{
assert_param(IS_USART_123_PERIPH(USARTx));
while (USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);
USARTx->DR = (c & 0xff);
return 0;
}
int uart_getc (USART_TypeDef* USARTx)
{
assert_param(IS_USART_123_PERIPH(USARTx));
while (USART_GetFlagStatus(USARTx, USART_FLAG_RXNE) == RESET);
return USARTx->DR & 0xff;
}
uart_putc
工作正常,但 uart_getc 卡在 while 循环中,似乎 while 条件永远不会为真。
有人知道这段代码有什么问题吗?