diff --git a/include/libopencm3/sam3x/usart.h b/include/libopencm3/sam3x/usart.h index bf5e4bf9..ac7db1d5 100644 --- a/include/libopencm3/sam3x/usart.h +++ b/include/libopencm3/sam3x/usart.h @@ -210,6 +210,8 @@ void usart_wait_send_ready(u32 usart); void usart_wait_recv_ready(u32 usart); void usart_send_blocking(u32 usart, u16 data); u16 usart_recv_blocking(u32 usart); +void usart_enable_rx_interrupt(u32 usart); +void usart_disable_rx_interrupt(u32 usart); #endif diff --git a/lib/sam3x/usart.c b/lib/sam3x/usart.c index 012a07e0..4d1114f1 100644 --- a/lib/sam3x/usart.c +++ b/lib/sam3x/usart.c @@ -97,3 +97,13 @@ u16 usart_recv_blocking(u32 usart) return usart_recv(usart); } +void usart_enable_rx_interrupt(u32 usart) +{ + USART_IER(usart) = USART_CSR_RXRDY; +} + +void usart_disable_rx_interrupt(u32 usart) +{ + USART_IDR(usart) = USART_CSR_RXRDY; +} +