aboutsummaryrefslogtreecommitdiff
path: root/examples/rp/src/bin/uart_buffered_split.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/rp/src/bin/uart_buffered_split.rs')
-rw-r--r--examples/rp/src/bin/uart_buffered_split.rs11
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 @@
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_executor::_export::StaticCell; 7use embassy_executor::_export::StaticCell;
8use embassy_rp::interrupt; 8use embassy_rp::bind_interrupts;
9use embassy_rp::peripherals::UART0; 9use embassy_rp::peripherals::UART0;
10use embassy_rp::uart::{BufferedUart, BufferedUartRx, Config}; 10use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart, BufferedUartRx, Config};
11use embassy_time::{Duration, Timer}; 11use embassy_time::{Duration, Timer};
12use embedded_io::asynch::{Read, Write}; 12use embedded_io::asynch::{Read, Write};
13use {defmt_rtt as _, panic_probe as _}; 13use {defmt_rtt as _, panic_probe as _};
14 14
15bind_interrupts!(struct Irqs {
16 UART0_IRQ => BufferedInterruptHandler<UART0>;
17});
18
15macro_rules! singleton { 19macro_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)));