diff options
Diffstat (limited to 'examples/rp/src/bin/uart_buffered_split.rs')
| -rw-r--r-- | examples/rp/src/bin/uart_buffered_split.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/examples/rp/src/bin/uart_buffered_split.rs b/examples/rp/src/bin/uart_buffered_split.rs index a8a682274..d6f01b4de 100644 --- a/examples/rp/src/bin/uart_buffered_split.rs +++ b/examples/rp/src/bin/uart_buffered_split.rs | |||
| @@ -5,13 +5,17 @@ | |||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_executor::_export::StaticCell; | 7 | use embassy_executor::_export::StaticCell; |
| 8 | use embassy_rp::interrupt; | 8 | use embassy_rp::bind_interrupts; |
| 9 | use embassy_rp::peripherals::UART0; | 9 | use embassy_rp::peripherals::UART0; |
| 10 | use embassy_rp::uart::{BufferedUart, BufferedUartRx, Config}; | 10 | use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart, BufferedUartRx, Config}; |
| 11 | use embassy_time::{Duration, Timer}; | 11 | use embassy_time::{Duration, Timer}; |
| 12 | use embedded_io::asynch::{Read, Write}; | 12 | use embedded_io::asynch::{Read, Write}; |
| 13 | use {defmt_rtt as _, panic_probe as _}; | 13 | use {defmt_rtt as _, panic_probe as _}; |
| 14 | 14 | ||
| 15 | bind_interrupts!(struct Irqs { | ||
| 16 | UART0_IRQ => BufferedInterruptHandler<UART0>; | ||
| 17 | }); | ||
| 18 | |||
| 15 | macro_rules! singleton { | 19 | macro_rules! singleton { |
| 16 | ($val:expr) => {{ | 20 | ($val:expr) => {{ |
| 17 | type T = impl Sized; | 21 | type T = impl Sized; |
| @@ -26,10 +30,9 @@ async fn main(spawner: Spawner) { | |||
| 26 | let p = embassy_rp::init(Default::default()); | 30 | let p = embassy_rp::init(Default::default()); |
| 27 | let (tx_pin, rx_pin, uart) = (p.PIN_0, p.PIN_1, p.UART0); | 31 | let (tx_pin, rx_pin, uart) = (p.PIN_0, p.PIN_1, p.UART0); |
| 28 | 32 | ||
| 29 | let irq = interrupt::take!(UART0_IRQ); | ||
| 30 | let tx_buf = &mut singleton!([0u8; 16])[..]; | 33 | let tx_buf = &mut singleton!([0u8; 16])[..]; |
| 31 | let rx_buf = &mut singleton!([0u8; 16])[..]; | 34 | let rx_buf = &mut singleton!([0u8; 16])[..]; |
| 32 | let uart = BufferedUart::new(uart, irq, tx_pin, rx_pin, tx_buf, rx_buf, Config::default()); | 35 | let uart = BufferedUart::new(uart, Irqs, tx_pin, rx_pin, tx_buf, rx_buf, Config::default()); |
| 33 | let (rx, mut tx) = uart.split(); | 36 | let (rx, mut tx) = uart.split(); |
| 34 | 37 | ||
| 35 | unwrap!(spawner.spawn(reader(rx))); | 38 | unwrap!(spawner.spawn(reader(rx))); |
