STM32: Empfangen von Daten über USART

Arbeite ich auf STM32 Discovery (F10x Familie), und ich bin versucht zu senden und empfangen von Daten über 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 arbeitet fein, aber uart_getc gets stucked in der while-Schleife, es scheint, wie die while-Bedingung wird nie wahr werden.

Hat jemand wissen, was ist falsch an diesem code?

  • Warum nicht nutzen Sie einfach die STM32 standard peripheral library?
Schreibe einen Kommentar