Kann mir jemand helfen, die Atmel ATSAME70 ARM M7 USART Empfang Timeout zu arbeiten?Atmel SAME70 USART Receive Timeout nicht ausgelöst
Mein USART sendet und empfängt korrekt bei 115200 Baud. Ich bin mit der ASF-Bibliothek und den Rx Timeout wie folgt festgelegt:
#define TBUS_RX_TIMEOUT_MS 200
usart_set_rx_timeout(USART0, UART_BAUDRATE * RX_TIMEOUT_MS/1000);
Ich bestätige, dass die auf den Wert korrekt eingestellt ist in US_RTOR Register.
Ich beginne dann das Timeout mit diesem Aufruf:
usart_restart_rx_timeout(USART0);
kein Verkehr an dieser Stelle auf dem seriellen Bus ist, so erwartete ich der TIMEOUT-Flag gesetzt werden. Es wird nie eingestellt.
Ist noch etwas erforderlich, um das Zeitlimit auszulösen?
Ist der Interrupt aktiviert? Versuchen Sie hinzufügen 'usart_enable_interrupt (USART0, US_IER_TIMEOUT);' – LPs
Vielen Dank. Ja, der Interrupt ist aktiviert. Ich fügte hinzu, die IER-Timeout auf die bereits existierenden Maske wie folgt: 'usart_enable_interrupt (TBUS_UART, UART_IER_RXRDY | UART_IER_FRAME | UART_IER_OVRE | US_IER_TIMEOUT);' Alle anderen Interrupts ausgelöst werden, nur nicht das Timeout. – David