누구든지 Atmel ATSAME70 ARM M7 USART 수신 타임 아웃을 작동시키는 데 도움을 줄 수 있습니까?Atmel SAME70 USART Receive Timeout 트리거되지 않았습니다.
내 USART가 115200 보오드에서 올바르게 송수신 중입니다. 나는 ASF 라이브러리를 사용하여, 다음과 같이 수신 시간 제한을 설정 해요 : 나는이 US_RTOR 레지스터에 올바르게 설정 값을 확인
#define TBUS_RX_TIMEOUT_MS 200
usart_set_rx_timeout(USART0, UART_BAUDRATE * RX_TIMEOUT_MS/1000);
. 이 시점에서 시리얼 버스 트래픽이 없습니다
usart_restart_rx_timeout(USART0);
, 그래서 시간 초과 플래그가 설정 될 것으로 예상 :
나는 다음이 호출을 사용하여 제한 시간을 시작합니다. 결코 설정되지 않습니다.
제한 시간 초과를 트리거하는 데 필요한 다른 것이 있습니까?
인터럽트가 활성화되어 있습니까? 'usart_enable_interrupt (USART0, US_IER_TIMEOUT);을 추가하십시오. – LPs
대단히 감사합니다. 예, 인터럽트가 사용됩니다. ;' 다른 모든 인터럽트가 트리거, 그냥 시간 제한 'usart_enable_interrupt (| UART_IER_FRAME | | UART_IER_OVRE US_IER_TIMEOUT TBUS_UART, UART_IER_RXRDY)를 다음과 같이 I는 기존 마스크에 IER 시간 제한을 추가했다. – David