diff options
Diffstat (limited to 'examples/stm32h7/src/bin')
| -rw-r--r-- | examples/stm32h7/src/bin/camera.rs | 12 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/dac_dma.rs | 4 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/eth.rs | 3 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/eth_client.rs | 3 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/eth_client_mii.rs | 3 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/i2c.rs | 12 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/i2c_shared.rs | 22 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/low_level_timer_api.rs | 10 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/multiprio.rs | 6 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/pwm.rs | 2 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/sai.rs | 72 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/signal.rs | 2 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/spi.rs | 2 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/spi_bdma.rs | 2 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/spi_dma.rs | 2 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/usart.rs | 2 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/usart_dma.rs | 2 | ||||
| -rw-r--r-- | examples/stm32h7/src/bin/usart_split.rs | 2 |
18 files changed, 33 insertions, 130 deletions
diff --git a/examples/stm32h7/src/bin/camera.rs b/examples/stm32h7/src/bin/camera.rs index 170a5aa28..8f2e265d6 100644 --- a/examples/stm32h7/src/bin/camera.rs +++ b/examples/stm32h7/src/bin/camera.rs | |||
| @@ -6,7 +6,6 @@ use embassy_stm32::dcmi::{self, *}; | |||
| 6 | use embassy_stm32::gpio::{Level, Output, Speed}; | 6 | use embassy_stm32::gpio::{Level, Output, Speed}; |
| 7 | use embassy_stm32::i2c::I2c; | 7 | use embassy_stm32::i2c::I2c; |
| 8 | use embassy_stm32::rcc::{Mco, Mco1Source, McoPrescaler}; | 8 | use embassy_stm32::rcc::{Mco, Mco1Source, McoPrescaler}; |
| 9 | use embassy_stm32::time::khz; | ||
| 10 | use embassy_stm32::{bind_interrupts, i2c, peripherals, Config}; | 9 | use embassy_stm32::{bind_interrupts, i2c, peripherals, Config}; |
| 11 | use embassy_time::Timer; | 10 | use embassy_time::Timer; |
| 12 | use ov7725::*; | 11 | use ov7725::*; |
| @@ -52,16 +51,7 @@ async fn main(_spawner: Spawner) { | |||
| 52 | let mco = Mco::new(p.MCO1, p.PA8, Mco1Source::HSI, McoPrescaler::DIV3); | 51 | let mco = Mco::new(p.MCO1, p.PA8, Mco1Source::HSI, McoPrescaler::DIV3); |
| 53 | 52 | ||
| 54 | let mut led = Output::new(p.PE3, Level::High, Speed::Low); | 53 | let mut led = Output::new(p.PE3, Level::High, Speed::Low); |
| 55 | let cam_i2c = I2c::new( | 54 | let cam_i2c = I2c::new(p.I2C1, p.PB8, p.PB9, Irqs, p.DMA1_CH1, p.DMA1_CH2, Default::default()); |
| 56 | p.I2C1, | ||
| 57 | p.PB8, | ||
| 58 | p.PB9, | ||
| 59 | Irqs, | ||
| 60 | p.DMA1_CH1, | ||
| 61 | p.DMA1_CH2, | ||
| 62 | khz(100), | ||
| 63 | Default::default(), | ||
| 64 | ); | ||
| 65 | 55 | ||
| 66 | let mut camera = Ov7725::new(cam_i2c, mco); | 56 | let mut camera = Ov7725::new(cam_i2c, mco); |
| 67 | 57 | ||
diff --git a/examples/stm32h7/src/bin/dac_dma.rs b/examples/stm32h7/src/bin/dac_dma.rs index 8314754bc..df37e9d78 100644 --- a/examples/stm32h7/src/bin/dac_dma.rs +++ b/examples/stm32h7/src/bin/dac_dma.rs | |||
| @@ -53,8 +53,8 @@ async fn main(spawner: Spawner) { | |||
| 53 | // Obtain two independent channels (p.DAC1 can only be consumed once, though!) | 53 | // Obtain two independent channels (p.DAC1 can only be consumed once, though!) |
| 54 | let (dac_ch1, dac_ch2) = embassy_stm32::dac::Dac::new(p.DAC1, p.DMA1_CH3, p.DMA1_CH4, p.PA4, p.PA5).split(); | 54 | let (dac_ch1, dac_ch2) = embassy_stm32::dac::Dac::new(p.DAC1, p.DMA1_CH3, p.DMA1_CH4, p.PA4, p.PA5).split(); |
| 55 | 55 | ||
| 56 | spawner.spawn(dac_task1(p.TIM6, dac_ch1)).ok(); | 56 | spawner.spawn(dac_task1(p.TIM6, dac_ch1).unwrap()); |
| 57 | spawner.spawn(dac_task2(p.TIM7, dac_ch2)).ok(); | 57 | spawner.spawn(dac_task2(p.TIM7, dac_ch2).unwrap()); |
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | #[embassy_executor::task] | 60 | #[embassy_executor::task] |
diff --git a/examples/stm32h7/src/bin/eth.rs b/examples/stm32h7/src/bin/eth.rs index da7aa4af5..6c215362d 100644 --- a/examples/stm32h7/src/bin/eth.rs +++ b/examples/stm32h7/src/bin/eth.rs | |||
| @@ -11,7 +11,6 @@ use embassy_stm32::rng::Rng; | |||
| 11 | use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config}; | 11 | use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config}; |
| 12 | use embassy_time::Timer; | 12 | use embassy_time::Timer; |
| 13 | use embedded_io_async::Write; | 13 | use embedded_io_async::Write; |
| 14 | use rand_core::RngCore; | ||
| 15 | use static_cell::StaticCell; | 14 | use static_cell::StaticCell; |
| 16 | use {defmt_rtt as _, panic_probe as _}; | 15 | use {defmt_rtt as _, panic_probe as _}; |
| 17 | 16 | ||
| @@ -94,7 +93,7 @@ async fn main(spawner: Spawner) -> ! { | |||
| 94 | let (stack, runner) = embassy_net::new(device, config, RESOURCES.init(StackResources::new()), seed); | 93 | let (stack, runner) = embassy_net::new(device, config, RESOURCES.init(StackResources::new()), seed); |
| 95 | 94 | ||
| 96 | // Launch network task | 95 | // Launch network task |
| 97 | unwrap!(spawner.spawn(net_task(runner))); | 96 | spawner.spawn(unwrap!(net_task(runner))); |
| 98 | 97 | ||
| 99 | // Ensure DHCP configuration is up before trying connect | 98 | // Ensure DHCP configuration is up before trying connect |
| 100 | stack.wait_config_up().await; | 99 | stack.wait_config_up().await; |
diff --git a/examples/stm32h7/src/bin/eth_client.rs b/examples/stm32h7/src/bin/eth_client.rs index 10485109a..10ac57fc9 100644 --- a/examples/stm32h7/src/bin/eth_client.rs +++ b/examples/stm32h7/src/bin/eth_client.rs | |||
| @@ -14,7 +14,6 @@ use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config}; | |||
| 14 | use embassy_time::Timer; | 14 | use embassy_time::Timer; |
| 15 | use embedded_io_async::Write; | 15 | use embedded_io_async::Write; |
| 16 | use embedded_nal_async::TcpConnect; | 16 | use embedded_nal_async::TcpConnect; |
| 17 | use rand_core::RngCore; | ||
| 18 | use static_cell::StaticCell; | 17 | use static_cell::StaticCell; |
| 19 | use {defmt_rtt as _, panic_probe as _}; | 18 | use {defmt_rtt as _, panic_probe as _}; |
| 20 | 19 | ||
| @@ -96,7 +95,7 @@ async fn main(spawner: Spawner) -> ! { | |||
| 96 | let (stack, runner) = embassy_net::new(device, config, RESOURCES.init(StackResources::new()), seed); | 95 | let (stack, runner) = embassy_net::new(device, config, RESOURCES.init(StackResources::new()), seed); |
| 97 | 96 | ||
| 98 | // Launch network task | 97 | // Launch network task |
| 99 | unwrap!(spawner.spawn(net_task(runner))); | 98 | spawner.spawn(unwrap!(net_task(runner))); |
| 100 | 99 | ||
| 101 | // Ensure DHCP configuration is up before trying connect | 100 | // Ensure DHCP configuration is up before trying connect |
| 102 | stack.wait_config_up().await; | 101 | stack.wait_config_up().await; |
diff --git a/examples/stm32h7/src/bin/eth_client_mii.rs b/examples/stm32h7/src/bin/eth_client_mii.rs index 849173615..c6a108471 100644 --- a/examples/stm32h7/src/bin/eth_client_mii.rs +++ b/examples/stm32h7/src/bin/eth_client_mii.rs | |||
| @@ -14,7 +14,6 @@ use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config}; | |||
| 14 | use embassy_time::Timer; | 14 | use embassy_time::Timer; |
| 15 | use embedded_io_async::Write; | 15 | use embedded_io_async::Write; |
| 16 | use embedded_nal_async::TcpConnect; | 16 | use embedded_nal_async::TcpConnect; |
| 17 | use rand_core::RngCore; | ||
| 18 | use static_cell::StaticCell; | 17 | use static_cell::StaticCell; |
| 19 | use {defmt_rtt as _, panic_probe as _}; | 18 | use {defmt_rtt as _, panic_probe as _}; |
| 20 | 19 | ||
| @@ -102,7 +101,7 @@ async fn main(spawner: Spawner) -> ! { | |||
| 102 | let (stack, runner) = embassy_net::new(device, config, RESOURCES.init(StackResources::new()), seed); | 101 | let (stack, runner) = embassy_net::new(device, config, RESOURCES.init(StackResources::new()), seed); |
| 103 | 102 | ||
| 104 | // Launch network task | 103 | // Launch network task |
| 105 | unwrap!(spawner.spawn(net_task(runner))); | 104 | spawner.spawn(unwrap!(net_task(runner))); |
| 106 | 105 | ||
| 107 | // Ensure DHCP configuration is up before trying connect | 106 | // Ensure DHCP configuration is up before trying connect |
| 108 | stack.wait_config_up().await; | 107 | stack.wait_config_up().await; |
diff --git a/examples/stm32h7/src/bin/i2c.rs b/examples/stm32h7/src/bin/i2c.rs index 3bf39eb44..c40af4935 100644 --- a/examples/stm32h7/src/bin/i2c.rs +++ b/examples/stm32h7/src/bin/i2c.rs | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | use defmt::*; | 4 | use defmt::*; |
| 5 | use embassy_executor::Spawner; | 5 | use embassy_executor::Spawner; |
| 6 | use embassy_stm32::i2c::{Error, I2c}; | 6 | use embassy_stm32::i2c::{Error, I2c}; |
| 7 | use embassy_stm32::time::Hertz; | ||
| 8 | use embassy_stm32::{bind_interrupts, i2c, peripherals}; | 7 | use embassy_stm32::{bind_interrupts, i2c, peripherals}; |
| 9 | use {defmt_rtt as _, panic_probe as _}; | 8 | use {defmt_rtt as _, panic_probe as _}; |
| 10 | 9 | ||
| @@ -21,16 +20,7 @@ async fn main(_spawner: Spawner) { | |||
| 21 | info!("Hello world!"); | 20 | info!("Hello world!"); |
| 22 | let p = embassy_stm32::init(Default::default()); | 21 | let p = embassy_stm32::init(Default::default()); |
| 23 | 22 | ||
| 24 | let mut i2c = I2c::new( | 23 | let mut i2c = I2c::new(p.I2C2, p.PB10, p.PB11, Irqs, p.DMA1_CH4, p.DMA1_CH5, Default::default()); |
| 25 | p.I2C2, | ||
| 26 | p.PB10, | ||
| 27 | p.PB11, | ||
| 28 | Irqs, | ||
| 29 | p.DMA1_CH4, | ||
| 30 | p.DMA1_CH5, | ||
| 31 | Hertz(100_000), | ||
| 32 | Default::default(), | ||
| 33 | ); | ||
| 34 | 24 | ||
| 35 | let mut data = [0u8; 1]; | 25 | let mut data = [0u8; 1]; |
| 36 | 26 | ||
diff --git a/examples/stm32h7/src/bin/i2c_shared.rs b/examples/stm32h7/src/bin/i2c_shared.rs index 136b91eeb..9e45d845f 100644 --- a/examples/stm32h7/src/bin/i2c_shared.rs +++ b/examples/stm32h7/src/bin/i2c_shared.rs | |||
| @@ -8,7 +8,6 @@ use embassy_embedded_hal::shared_bus::blocking::i2c::I2cDevice; | |||
| 8 | use embassy_executor::Spawner; | 8 | use embassy_executor::Spawner; |
| 9 | use embassy_stm32::i2c::{self, I2c}; | 9 | use embassy_stm32::i2c::{self, I2c}; |
| 10 | use embassy_stm32::mode::Async; | 10 | use embassy_stm32::mode::Async; |
| 11 | use embassy_stm32::time::Hertz; | ||
| 12 | use embassy_stm32::{bind_interrupts, peripherals}; | 11 | use embassy_stm32::{bind_interrupts, peripherals}; |
| 13 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | 12 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; |
| 14 | use embassy_sync::blocking_mutex::NoopMutex; | 13 | use embassy_sync::blocking_mutex::NoopMutex; |
| @@ -25,7 +24,7 @@ const SHTC3_WAKEUP: [u8; 2] = [0x35, 0x17]; | |||
| 25 | const SHTC3_MEASURE_RH_FIRST: [u8; 2] = [0x5c, 0x24]; | 24 | const SHTC3_MEASURE_RH_FIRST: [u8; 2] = [0x5c, 0x24]; |
| 26 | const SHTC3_SLEEP: [u8; 2] = [0xb0, 0x98]; | 25 | const SHTC3_SLEEP: [u8; 2] = [0xb0, 0x98]; |
| 27 | 26 | ||
| 28 | static I2C_BUS: StaticCell<NoopMutex<RefCell<I2c<'static, Async>>>> = StaticCell::new(); | 27 | static I2C_BUS: StaticCell<NoopMutex<RefCell<I2c<'static, Async, i2c::Master>>>> = StaticCell::new(); |
| 29 | 28 | ||
| 30 | bind_interrupts!(struct Irqs { | 29 | bind_interrupts!(struct Irqs { |
| 31 | I2C1_EV => i2c::EventInterruptHandler<peripherals::I2C1>; | 30 | I2C1_EV => i2c::EventInterruptHandler<peripherals::I2C1>; |
| @@ -33,7 +32,7 @@ bind_interrupts!(struct Irqs { | |||
| 33 | }); | 32 | }); |
| 34 | 33 | ||
| 35 | #[embassy_executor::task] | 34 | #[embassy_executor::task] |
| 36 | async fn temperature(mut i2c: I2cDevice<'static, NoopRawMutex, I2c<'static, Async>>) { | 35 | async fn temperature(mut i2c: I2cDevice<'static, NoopRawMutex, I2c<'static, Async, i2c::Master>>) { |
| 37 | let mut data = [0u8; 2]; | 36 | let mut data = [0u8; 2]; |
| 38 | 37 | ||
| 39 | loop { | 38 | loop { |
| @@ -50,7 +49,7 @@ async fn temperature(mut i2c: I2cDevice<'static, NoopRawMutex, I2c<'static, Asyn | |||
| 50 | } | 49 | } |
| 51 | 50 | ||
| 52 | #[embassy_executor::task] | 51 | #[embassy_executor::task] |
| 53 | async fn humidity(mut i2c: I2cDevice<'static, NoopRawMutex, I2c<'static, Async>>) { | 52 | async fn humidity(mut i2c: I2cDevice<'static, NoopRawMutex, I2c<'static, Async, i2c::Master>>) { |
| 54 | let mut data = [0u8; 6]; | 53 | let mut data = [0u8; 6]; |
| 55 | 54 | ||
| 56 | loop { | 55 | loop { |
| @@ -90,24 +89,15 @@ async fn humidity(mut i2c: I2cDevice<'static, NoopRawMutex, I2c<'static, Async>> | |||
| 90 | async fn main(spawner: Spawner) { | 89 | async fn main(spawner: Spawner) { |
| 91 | let p = embassy_stm32::init(Default::default()); | 90 | let p = embassy_stm32::init(Default::default()); |
| 92 | 91 | ||
| 93 | let i2c = I2c::new( | 92 | let i2c = I2c::new(p.I2C1, p.PB8, p.PB9, Irqs, p.DMA1_CH4, p.DMA1_CH5, Default::default()); |
| 94 | p.I2C1, | ||
| 95 | p.PB8, | ||
| 96 | p.PB9, | ||
| 97 | Irqs, | ||
| 98 | p.DMA1_CH4, | ||
| 99 | p.DMA1_CH5, | ||
| 100 | Hertz(100_000), | ||
| 101 | Default::default(), | ||
| 102 | ); | ||
| 103 | let i2c_bus = NoopMutex::new(RefCell::new(i2c)); | 93 | let i2c_bus = NoopMutex::new(RefCell::new(i2c)); |
| 104 | let i2c_bus = I2C_BUS.init(i2c_bus); | 94 | let i2c_bus = I2C_BUS.init(i2c_bus); |
| 105 | 95 | ||
| 106 | // Device 1, using embedded-hal-async compatible driver for TMP117 | 96 | // Device 1, using embedded-hal-async compatible driver for TMP117 |
| 107 | let i2c_dev1 = I2cDevice::new(i2c_bus); | 97 | let i2c_dev1 = I2cDevice::new(i2c_bus); |
| 108 | spawner.spawn(temperature(i2c_dev1)).unwrap(); | 98 | spawner.spawn(temperature(i2c_dev1).unwrap()); |
| 109 | 99 | ||
| 110 | // Device 2, using embedded-hal-async compatible driver for SHTC3 | 100 | // Device 2, using embedded-hal-async compatible driver for SHTC3 |
| 111 | let i2c_dev2 = I2cDevice::new(i2c_bus); | 101 | let i2c_dev2 = I2cDevice::new(i2c_bus); |
| 112 | spawner.spawn(humidity(i2c_dev2)).unwrap(); | 102 | spawner.spawn(humidity(i2c_dev2).unwrap()); |
| 113 | } | 103 | } |
diff --git a/examples/stm32h7/src/bin/low_level_timer_api.rs b/examples/stm32h7/src/bin/low_level_timer_api.rs index 8de31ea5b..12abb8693 100644 --- a/examples/stm32h7/src/bin/low_level_timer_api.rs +++ b/examples/stm32h7/src/bin/low_level_timer_api.rs | |||
| @@ -6,7 +6,7 @@ use embassy_executor::Spawner; | |||
| 6 | use embassy_stm32::gpio::{AfType, Flex, OutputType, Speed}; | 6 | use embassy_stm32::gpio::{AfType, Flex, OutputType, Speed}; |
| 7 | use embassy_stm32::time::{khz, Hertz}; | 7 | use embassy_stm32::time::{khz, Hertz}; |
| 8 | use embassy_stm32::timer::low_level::{OutputCompareMode, Timer as LLTimer}; | 8 | use embassy_stm32::timer::low_level::{OutputCompareMode, Timer as LLTimer}; |
| 9 | use embassy_stm32::timer::{Channel, Channel1Pin, Channel2Pin, Channel3Pin, Channel4Pin, GeneralInstance32bit4Channel}; | 9 | use embassy_stm32::timer::{Ch1, Ch2, Ch3, Ch4, Channel, GeneralInstance32bit4Channel, TimerPin}; |
| 10 | use embassy_stm32::{Config, Peri}; | 10 | use embassy_stm32::{Config, Peri}; |
| 11 | use embassy_time::Timer; | 11 | use embassy_time::Timer; |
| 12 | use {defmt_rtt as _, panic_probe as _}; | 12 | use {defmt_rtt as _, panic_probe as _}; |
| @@ -67,10 +67,10 @@ pub struct SimplePwm32<'d, T: GeneralInstance32bit4Channel> { | |||
| 67 | impl<'d, T: GeneralInstance32bit4Channel> SimplePwm32<'d, T> { | 67 | impl<'d, T: GeneralInstance32bit4Channel> SimplePwm32<'d, T> { |
| 68 | pub fn new( | 68 | pub fn new( |
| 69 | tim: Peri<'d, T>, | 69 | tim: Peri<'d, T>, |
| 70 | ch1: Peri<'d, impl Channel1Pin<T>>, | 70 | ch1: Peri<'d, impl TimerPin<T, Ch1>>, |
| 71 | ch2: Peri<'d, impl Channel2Pin<T>>, | 71 | ch2: Peri<'d, impl TimerPin<T, Ch2>>, |
| 72 | ch3: Peri<'d, impl Channel3Pin<T>>, | 72 | ch3: Peri<'d, impl TimerPin<T, Ch3>>, |
| 73 | ch4: Peri<'d, impl Channel4Pin<T>>, | 73 | ch4: Peri<'d, impl TimerPin<T, Ch4>>, |
| 74 | freq: Hertz, | 74 | freq: Hertz, |
| 75 | ) -> Self { | 75 | ) -> Self { |
| 76 | let af1 = ch1.af_num(); | 76 | let af1 = ch1.af_num(); |
diff --git a/examples/stm32h7/src/bin/multiprio.rs b/examples/stm32h7/src/bin/multiprio.rs index b4620888f..2f2ffdea2 100644 --- a/examples/stm32h7/src/bin/multiprio.rs +++ b/examples/stm32h7/src/bin/multiprio.rs | |||
| @@ -135,16 +135,16 @@ fn main() -> ! { | |||
| 135 | // High-priority executor: UART4, priority level 6 | 135 | // High-priority executor: UART4, priority level 6 |
| 136 | interrupt::UART4.set_priority(Priority::P6); | 136 | interrupt::UART4.set_priority(Priority::P6); |
| 137 | let spawner = EXECUTOR_HIGH.start(interrupt::UART4); | 137 | let spawner = EXECUTOR_HIGH.start(interrupt::UART4); |
| 138 | unwrap!(spawner.spawn(run_high())); | 138 | spawner.spawn(unwrap!(run_high())); |
| 139 | 139 | ||
| 140 | // Medium-priority executor: UART5, priority level 7 | 140 | // Medium-priority executor: UART5, priority level 7 |
| 141 | interrupt::UART5.set_priority(Priority::P7); | 141 | interrupt::UART5.set_priority(Priority::P7); |
| 142 | let spawner = EXECUTOR_MED.start(interrupt::UART5); | 142 | let spawner = EXECUTOR_MED.start(interrupt::UART5); |
| 143 | unwrap!(spawner.spawn(run_med())); | 143 | spawner.spawn(unwrap!(run_med())); |
| 144 | 144 | ||
| 145 | // Low priority executor: runs in thread mode, using WFE/SEV | 145 | // Low priority executor: runs in thread mode, using WFE/SEV |
| 146 | let executor = EXECUTOR_LOW.init(Executor::new()); | 146 | let executor = EXECUTOR_LOW.init(Executor::new()); |
| 147 | executor.run(|spawner| { | 147 | executor.run(|spawner| { |
| 148 | unwrap!(spawner.spawn(run_low())); | 148 | spawner.spawn(unwrap!(run_low())); |
| 149 | }); | 149 | }); |
| 150 | } | 150 | } |
diff --git a/examples/stm32h7/src/bin/pwm.rs b/examples/stm32h7/src/bin/pwm.rs index a1c53fc3f..73b43be69 100644 --- a/examples/stm32h7/src/bin/pwm.rs +++ b/examples/stm32h7/src/bin/pwm.rs | |||
| @@ -36,7 +36,7 @@ async fn main(_spawner: Spawner) { | |||
| 36 | let p = embassy_stm32::init(config); | 36 | let p = embassy_stm32::init(config); |
| 37 | info!("Hello World!"); | 37 | info!("Hello World!"); |
| 38 | 38 | ||
| 39 | let ch1_pin = PwmPin::new_ch1(p.PA6, OutputType::PushPull); | 39 | let ch1_pin = PwmPin::new(p.PA6, OutputType::PushPull); |
| 40 | let mut pwm = SimplePwm::new(p.TIM3, Some(ch1_pin), None, None, None, khz(10), Default::default()); | 40 | let mut pwm = SimplePwm::new(p.TIM3, Some(ch1_pin), None, None, None, khz(10), Default::default()); |
| 41 | let mut ch1 = pwm.ch1(); | 41 | let mut ch1 = pwm.ch1(); |
| 42 | ch1.enable(); | 42 | ch1.enable(); |
diff --git a/examples/stm32h7/src/bin/sai.rs b/examples/stm32h7/src/bin/sai.rs index 01937593a..847b70c85 100644 --- a/examples/stm32h7/src/bin/sai.rs +++ b/examples/stm32h7/src/bin/sai.rs | |||
| @@ -63,7 +63,7 @@ async fn main(_spawner: Spawner) { | |||
| 63 | tx_config.tx_rx = TxRx::Transmitter; | 63 | tx_config.tx_rx = TxRx::Transmitter; |
| 64 | tx_config.sync_output = true; | 64 | tx_config.sync_output = true; |
| 65 | tx_config.clock_strobe = ClockStrobe::Falling; | 65 | tx_config.clock_strobe = ClockStrobe::Falling; |
| 66 | tx_config.master_clock_divider = mclk_div; | 66 | tx_config.master_clock_divider = Some(mclk_div); |
| 67 | tx_config.stereo_mono = StereoMono::Stereo; | 67 | tx_config.stereo_mono = StereoMono::Stereo; |
| 68 | tx_config.data_size = DataSize::Data24; | 68 | tx_config.data_size = DataSize::Data24; |
| 69 | tx_config.bit_order = BitOrder::MsbFirst; | 69 | tx_config.bit_order = BitOrder::MsbFirst; |
| @@ -119,71 +119,7 @@ async fn main(_spawner: Spawner) { | |||
| 119 | } | 119 | } |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | const fn mclk_div_from_u8(v: u8) -> MasterClockDivider { | 122 | fn mclk_div_from_u8(v: u8) -> MasterClockDivider { |
| 123 | match v { | 123 | assert!((1..=63).contains(&v)); |
| 124 | 1 => MasterClockDivider::Div1, | 124 | MasterClockDivider::from_bits(v) |
| 125 | 2 => MasterClockDivider::Div2, | ||
| 126 | 3 => MasterClockDivider::Div3, | ||
| 127 | 4 => MasterClockDivider::Div4, | ||
| 128 | 5 => MasterClockDivider::Div5, | ||
| 129 | 6 => MasterClockDivider::Div6, | ||
| 130 | 7 => MasterClockDivider::Div7, | ||
| 131 | 8 => MasterClockDivider::Div8, | ||
| 132 | 9 => MasterClockDivider::Div9, | ||
| 133 | 10 => MasterClockDivider::Div10, | ||
| 134 | 11 => MasterClockDivider::Div11, | ||
| 135 | 12 => MasterClockDivider::Div12, | ||
| 136 | 13 => MasterClockDivider::Div13, | ||
| 137 | 14 => MasterClockDivider::Div14, | ||
| 138 | 15 => MasterClockDivider::Div15, | ||
| 139 | 16 => MasterClockDivider::Div16, | ||
| 140 | 17 => MasterClockDivider::Div17, | ||
| 141 | 18 => MasterClockDivider::Div18, | ||
| 142 | 19 => MasterClockDivider::Div19, | ||
| 143 | 20 => MasterClockDivider::Div20, | ||
| 144 | 21 => MasterClockDivider::Div21, | ||
| 145 | 22 => MasterClockDivider::Div22, | ||
| 146 | 23 => MasterClockDivider::Div23, | ||
| 147 | 24 => MasterClockDivider::Div24, | ||
| 148 | 25 => MasterClockDivider::Div25, | ||
| 149 | 26 => MasterClockDivider::Div26, | ||
| 150 | 27 => MasterClockDivider::Div27, | ||
| 151 | 28 => MasterClockDivider::Div28, | ||
| 152 | 29 => MasterClockDivider::Div29, | ||
| 153 | 30 => MasterClockDivider::Div30, | ||
| 154 | 31 => MasterClockDivider::Div31, | ||
| 155 | 32 => MasterClockDivider::Div32, | ||
| 156 | 33 => MasterClockDivider::Div33, | ||
| 157 | 34 => MasterClockDivider::Div34, | ||
| 158 | 35 => MasterClockDivider::Div35, | ||
| 159 | 36 => MasterClockDivider::Div36, | ||
| 160 | 37 => MasterClockDivider::Div37, | ||
| 161 | 38 => MasterClockDivider::Div38, | ||
| 162 | 39 => MasterClockDivider::Div39, | ||
| 163 | 40 => MasterClockDivider::Div40, | ||
| 164 | 41 => MasterClockDivider::Div41, | ||
| 165 | 42 => MasterClockDivider::Div42, | ||
| 166 | 43 => MasterClockDivider::Div43, | ||
| 167 | 44 => MasterClockDivider::Div44, | ||
| 168 | 45 => MasterClockDivider::Div45, | ||
| 169 | 46 => MasterClockDivider::Div46, | ||
| 170 | 47 => MasterClockDivider::Div47, | ||
| 171 | 48 => MasterClockDivider::Div48, | ||
| 172 | 49 => MasterClockDivider::Div49, | ||
| 173 | 50 => MasterClockDivider::Div50, | ||
| 174 | 51 => MasterClockDivider::Div51, | ||
| 175 | 52 => MasterClockDivider::Div52, | ||
| 176 | 53 => MasterClockDivider::Div53, | ||
| 177 | 54 => MasterClockDivider::Div54, | ||
| 178 | 55 => MasterClockDivider::Div55, | ||
| 179 | 56 => MasterClockDivider::Div56, | ||
| 180 | 57 => MasterClockDivider::Div57, | ||
| 181 | 58 => MasterClockDivider::Div58, | ||
| 182 | 59 => MasterClockDivider::Div59, | ||
| 183 | 60 => MasterClockDivider::Div60, | ||
| 184 | 61 => MasterClockDivider::Div61, | ||
| 185 | 62 => MasterClockDivider::Div62, | ||
| 186 | 63 => MasterClockDivider::Div63, | ||
| 187 | _ => panic!(), | ||
| 188 | } | ||
| 189 | } | 125 | } |
diff --git a/examples/stm32h7/src/bin/signal.rs b/examples/stm32h7/src/bin/signal.rs index b73360f32..97309798e 100644 --- a/examples/stm32h7/src/bin/signal.rs +++ b/examples/stm32h7/src/bin/signal.rs | |||
| @@ -26,7 +26,7 @@ async fn my_sending_task() { | |||
| 26 | #[embassy_executor::main] | 26 | #[embassy_executor::main] |
| 27 | async fn main(spawner: Spawner) { | 27 | async fn main(spawner: Spawner) { |
| 28 | let _p = embassy_stm32::init(Default::default()); | 28 | let _p = embassy_stm32::init(Default::default()); |
| 29 | unwrap!(spawner.spawn(my_sending_task())); | 29 | spawner.spawn(unwrap!(my_sending_task())); |
| 30 | 30 | ||
| 31 | loop { | 31 | loop { |
| 32 | let received_counter = SIGNAL.wait().await; | 32 | let received_counter = SIGNAL.wait().await; |
diff --git a/examples/stm32h7/src/bin/spi.rs b/examples/stm32h7/src/bin/spi.rs index ad4a8aaf7..dce30a4a7 100644 --- a/examples/stm32h7/src/bin/spi.rs +++ b/examples/stm32h7/src/bin/spi.rs | |||
| @@ -66,6 +66,6 @@ fn main() -> ! { | |||
| 66 | let executor = EXECUTOR.init(Executor::new()); | 66 | let executor = EXECUTOR.init(Executor::new()); |
| 67 | 67 | ||
| 68 | executor.run(|spawner| { | 68 | executor.run(|spawner| { |
| 69 | unwrap!(spawner.spawn(main_task(spi))); | 69 | spawner.spawn(unwrap!(main_task(spi))); |
| 70 | }) | 70 | }) |
| 71 | } | 71 | } |
diff --git a/examples/stm32h7/src/bin/spi_bdma.rs b/examples/stm32h7/src/bin/spi_bdma.rs index 5a7dff572..828f687b8 100644 --- a/examples/stm32h7/src/bin/spi_bdma.rs +++ b/examples/stm32h7/src/bin/spi_bdma.rs | |||
| @@ -80,6 +80,6 @@ fn main() -> ! { | |||
| 80 | let executor = EXECUTOR.init(Executor::new()); | 80 | let executor = EXECUTOR.init(Executor::new()); |
| 81 | 81 | ||
| 82 | executor.run(|spawner| { | 82 | executor.run(|spawner| { |
| 83 | unwrap!(spawner.spawn(main_task(spi))); | 83 | spawner.spawn(unwrap!(main_task(spi))); |
| 84 | }) | 84 | }) |
| 85 | } | 85 | } |
diff --git a/examples/stm32h7/src/bin/spi_dma.rs b/examples/stm32h7/src/bin/spi_dma.rs index 731c7fef5..2197fabce 100644 --- a/examples/stm32h7/src/bin/spi_dma.rs +++ b/examples/stm32h7/src/bin/spi_dma.rs | |||
| @@ -63,6 +63,6 @@ fn main() -> ! { | |||
| 63 | let executor = EXECUTOR.init(Executor::new()); | 63 | let executor = EXECUTOR.init(Executor::new()); |
| 64 | 64 | ||
| 65 | executor.run(|spawner| { | 65 | executor.run(|spawner| { |
| 66 | unwrap!(spawner.spawn(main_task(spi))); | 66 | spawner.spawn(unwrap!(main_task(spi))); |
| 67 | }) | 67 | }) |
| 68 | } | 68 | } |
diff --git a/examples/stm32h7/src/bin/usart.rs b/examples/stm32h7/src/bin/usart.rs index cc49c2fdb..264e7d582 100644 --- a/examples/stm32h7/src/bin/usart.rs +++ b/examples/stm32h7/src/bin/usart.rs | |||
| @@ -34,6 +34,6 @@ fn main() -> ! { | |||
| 34 | let executor = EXECUTOR.init(Executor::new()); | 34 | let executor = EXECUTOR.init(Executor::new()); |
| 35 | 35 | ||
| 36 | executor.run(|spawner| { | 36 | executor.run(|spawner| { |
| 37 | unwrap!(spawner.spawn(main_task())); | 37 | spawner.spawn(unwrap!(main_task())); |
| 38 | }) | 38 | }) |
| 39 | } | 39 | } |
diff --git a/examples/stm32h7/src/bin/usart_dma.rs b/examples/stm32h7/src/bin/usart_dma.rs index 6f340d40a..23d7f193a 100644 --- a/examples/stm32h7/src/bin/usart_dma.rs +++ b/examples/stm32h7/src/bin/usart_dma.rs | |||
| @@ -42,6 +42,6 @@ fn main() -> ! { | |||
| 42 | let executor = EXECUTOR.init(Executor::new()); | 42 | let executor = EXECUTOR.init(Executor::new()); |
| 43 | 43 | ||
| 44 | executor.run(|spawner| { | 44 | executor.run(|spawner| { |
| 45 | unwrap!(spawner.spawn(main_task())); | 45 | spawner.spawn(unwrap!(main_task())); |
| 46 | }) | 46 | }) |
| 47 | } | 47 | } |
diff --git a/examples/stm32h7/src/bin/usart_split.rs b/examples/stm32h7/src/bin/usart_split.rs index 2bb58be5e..464ce8d72 100644 --- a/examples/stm32h7/src/bin/usart_split.rs +++ b/examples/stm32h7/src/bin/usart_split.rs | |||
| @@ -27,7 +27,7 @@ async fn main(spawner: Spawner) -> ! { | |||
| 27 | 27 | ||
| 28 | let (mut tx, rx) = usart.split(); | 28 | let (mut tx, rx) = usart.split(); |
| 29 | 29 | ||
| 30 | unwrap!(spawner.spawn(reader(rx))); | 30 | spawner.spawn(unwrap!(reader(rx))); |
| 31 | 31 | ||
| 32 | loop { | 32 | loop { |
| 33 | let buf = CHANNEL.receive().await; | 33 | let buf = CHANNEL.receive().await; |
