【发布时间】:2014-08-14 22:44:44
【问题描述】:
我正在研究 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 条件永远不会为真。
有人知道这段代码有什么问题吗?
【问题讨论】:
-
为什么不直接使用STM32标准外设库?