diff options
| author | chemicstry <[email protected]> | 2023-07-31 10:29:20 +0300 |
|---|---|---|
| committer | chemicstry <[email protected]> | 2023-07-31 10:29:20 +0300 |
| commit | 780569c08ab089dae67c5d57dd1852d5419d4577 (patch) | |
| tree | 021965b7c9ac34fb33507c3998b3a6b6e7cecae7 /examples/stm32f4/src | |
| parent | a56ef685f3bfd9148a79c9dbbdde83a2c1642ba5 (diff) | |
| parent | 6c6bd11c1a28eb8985518a10bd723c622d82f4b6 (diff) | |
Merge remote-tracking branch 'origin/main' into bxcan_timestamp
Diffstat (limited to 'examples/stm32f4/src')
| -rw-r--r-- | examples/stm32f4/src/bin/eth.rs | 6 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/pwm.rs | 7 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/pwm_complementary.rs | 11 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/spi.rs | 14 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/spi_dma.rs | 14 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/usb_ethernet.rs | 5 |
6 files changed, 25 insertions, 32 deletions
diff --git a/examples/stm32f4/src/bin/eth.rs b/examples/stm32f4/src/bin/eth.rs index d0b164393..496016687 100644 --- a/examples/stm32f4/src/bin/eth.rs +++ b/examples/stm32f4/src/bin/eth.rs | |||
| @@ -11,13 +11,15 @@ use embassy_stm32::eth::{Ethernet, PacketQueue}; | |||
| 11 | use embassy_stm32::peripherals::ETH; | 11 | use embassy_stm32::peripherals::ETH; |
| 12 | use embassy_stm32::rng::Rng; | 12 | use embassy_stm32::rng::Rng; |
| 13 | use embassy_stm32::time::mhz; | 13 | use embassy_stm32::time::mhz; |
| 14 | use embassy_stm32::{bind_interrupts, eth, Config}; | 14 | use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config}; |
| 15 | use embassy_time::{Duration, Timer}; | 15 | use embassy_time::{Duration, Timer}; |
| 16 | use embedded_io::asynch::Write; | 16 | use embedded_io::asynch::Write; |
| 17 | use static_cell::make_static; | 17 | use static_cell::make_static; |
| 18 | use {defmt_rtt as _, panic_probe as _}; | 18 | use {defmt_rtt as _, panic_probe as _}; |
| 19 | |||
| 19 | bind_interrupts!(struct Irqs { | 20 | bind_interrupts!(struct Irqs { |
| 20 | ETH => eth::InterruptHandler; | 21 | ETH => eth::InterruptHandler; |
| 22 | HASH_RNG => rng::InterruptHandler<peripherals::RNG>; | ||
| 21 | }); | 23 | }); |
| 22 | 24 | ||
| 23 | type Device = Ethernet<'static, ETH, GenericSMI>; | 25 | type Device = Ethernet<'static, ETH, GenericSMI>; |
| @@ -36,7 +38,7 @@ async fn main(spawner: Spawner) -> ! { | |||
| 36 | info!("Hello World!"); | 38 | info!("Hello World!"); |
| 37 | 39 | ||
| 38 | // Generate random seed. | 40 | // Generate random seed. |
| 39 | let mut rng = Rng::new(p.RNG); | 41 | let mut rng = Rng::new(p.RNG, Irqs); |
| 40 | let mut seed = [0; 8]; | 42 | let mut seed = [0; 8]; |
| 41 | let _ = rng.async_fill_bytes(&mut seed).await; | 43 | let _ = rng.async_fill_bytes(&mut seed).await; |
| 42 | let seed = u64::from_le_bytes(seed); | 44 | let seed = u64::from_le_bytes(seed); |
diff --git a/examples/stm32f4/src/bin/pwm.rs b/examples/stm32f4/src/bin/pwm.rs index 7c5902052..1013a844e 100644 --- a/examples/stm32f4/src/bin/pwm.rs +++ b/examples/stm32f4/src/bin/pwm.rs | |||
| @@ -4,9 +4,10 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::pwm::simple_pwm::{PwmPin, SimplePwm}; | 7 | use embassy_stm32::gpio::OutputType; |
| 8 | use embassy_stm32::pwm::Channel; | ||
| 9 | use embassy_stm32::time::khz; | 8 | use embassy_stm32::time::khz; |
| 9 | use embassy_stm32::timer::simple_pwm::{PwmPin, SimplePwm}; | ||
| 10 | use embassy_stm32::timer::Channel; | ||
| 10 | use embassy_time::{Duration, Timer}; | 11 | use embassy_time::{Duration, Timer}; |
| 11 | use {defmt_rtt as _, panic_probe as _}; | 12 | use {defmt_rtt as _, panic_probe as _}; |
| 12 | 13 | ||
| @@ -15,7 +16,7 @@ async fn main(_spawner: Spawner) { | |||
| 15 | let p = embassy_stm32::init(Default::default()); | 16 | let p = embassy_stm32::init(Default::default()); |
| 16 | info!("Hello World!"); | 17 | info!("Hello World!"); |
| 17 | 18 | ||
| 18 | let ch1 = PwmPin::new_ch1(p.PE9); | 19 | let ch1 = PwmPin::new_ch1(p.PE9, OutputType::PushPull); |
| 19 | let mut pwm = SimplePwm::new(p.TIM1, Some(ch1), None, None, None, khz(10)); | 20 | let mut pwm = SimplePwm::new(p.TIM1, Some(ch1), None, None, None, khz(10)); |
| 20 | let max = pwm.get_max_duty(); | 21 | let max = pwm.get_max_duty(); |
| 21 | pwm.enable(Channel::Ch1); | 22 | pwm.enable(Channel::Ch1); |
diff --git a/examples/stm32f4/src/bin/pwm_complementary.rs b/examples/stm32f4/src/bin/pwm_complementary.rs index a8a68ed6e..83a3c7537 100644 --- a/examples/stm32f4/src/bin/pwm_complementary.rs +++ b/examples/stm32f4/src/bin/pwm_complementary.rs | |||
| @@ -4,10 +4,11 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::pwm::complementary_pwm::{ComplementaryPwm, ComplementaryPwmPin}; | 7 | use embassy_stm32::gpio::OutputType; |
| 8 | use embassy_stm32::pwm::simple_pwm::PwmPin; | ||
| 9 | use embassy_stm32::pwm::Channel; | ||
| 10 | use embassy_stm32::time::khz; | 8 | use embassy_stm32::time::khz; |
| 9 | use embassy_stm32::timer::complementary_pwm::{ComplementaryPwm, ComplementaryPwmPin}; | ||
| 10 | use embassy_stm32::timer::simple_pwm::PwmPin; | ||
| 11 | use embassy_stm32::timer::Channel; | ||
| 11 | use embassy_time::{Duration, Timer}; | 12 | use embassy_time::{Duration, Timer}; |
| 12 | use {defmt_rtt as _, panic_probe as _}; | 13 | use {defmt_rtt as _, panic_probe as _}; |
| 13 | 14 | ||
| @@ -16,8 +17,8 @@ async fn main(_spawner: Spawner) { | |||
| 16 | let p = embassy_stm32::init(Default::default()); | 17 | let p = embassy_stm32::init(Default::default()); |
| 17 | info!("Hello World!"); | 18 | info!("Hello World!"); |
| 18 | 19 | ||
| 19 | let ch1 = PwmPin::new_ch1(p.PE9); | 20 | let ch1 = PwmPin::new_ch1(p.PE9, OutputType::PushPull); |
| 20 | let ch1n = ComplementaryPwmPin::new_ch1(p.PA7); | 21 | let ch1n = ComplementaryPwmPin::new_ch1(p.PA7, OutputType::PushPull); |
| 21 | let mut pwm = ComplementaryPwm::new( | 22 | let mut pwm = ComplementaryPwm::new( |
| 22 | p.TIM1, | 23 | p.TIM1, |
| 23 | Some(ch1), | 24 | Some(ch1), |
diff --git a/examples/stm32f4/src/bin/spi.rs b/examples/stm32f4/src/bin/spi.rs index 05b48f478..0919e9874 100644 --- a/examples/stm32f4/src/bin/spi.rs +++ b/examples/stm32f4/src/bin/spi.rs | |||
| @@ -16,16 +16,10 @@ fn main() -> ! { | |||
| 16 | 16 | ||
| 17 | let p = embassy_stm32::init(Default::default()); | 17 | let p = embassy_stm32::init(Default::default()); |
| 18 | 18 | ||
| 19 | let mut spi = Spi::new( | 19 | let mut spi_config = Config::default(); |
| 20 | p.SPI3, | 20 | spi_config.frequency = Hertz(1_000_000); |
| 21 | p.PC10, | 21 | |
| 22 | p.PC12, | 22 | let mut spi = Spi::new(p.SPI3, p.PC10, p.PC12, p.PC11, NoDma, NoDma, spi_config); |
| 23 | p.PC11, | ||
| 24 | NoDma, | ||
| 25 | NoDma, | ||
| 26 | Hertz(1_000_000), | ||
| 27 | Config::default(), | ||
| 28 | ); | ||
| 29 | 23 | ||
| 30 | let mut cs = Output::new(p.PE0, Level::High, Speed::VeryHigh); | 24 | let mut cs = Output::new(p.PE0, Level::High, Speed::VeryHigh); |
| 31 | 25 | ||
diff --git a/examples/stm32f4/src/bin/spi_dma.rs b/examples/stm32f4/src/bin/spi_dma.rs index 3d2a1a1ae..f291f7dba 100644 --- a/examples/stm32f4/src/bin/spi_dma.rs +++ b/examples/stm32f4/src/bin/spi_dma.rs | |||
| @@ -17,16 +17,10 @@ async fn main(_spawner: Spawner) { | |||
| 17 | let p = embassy_stm32::init(Default::default()); | 17 | let p = embassy_stm32::init(Default::default()); |
| 18 | info!("Hello World!"); | 18 | info!("Hello World!"); |
| 19 | 19 | ||
| 20 | let mut spi = Spi::new( | 20 | let mut spi_config = Config::default(); |
| 21 | p.SPI1, | 21 | spi_config.frequency = Hertz(1_000_000); |
| 22 | p.PB3, | 22 | |
| 23 | p.PB5, | 23 | let mut spi = Spi::new(p.SPI1, p.PB3, p.PB5, p.PB4, p.DMA2_CH3, p.DMA2_CH2, spi_config); |
| 24 | p.PB4, | ||
| 25 | p.DMA2_CH3, | ||
| 26 | p.DMA2_CH2, | ||
| 27 | Hertz(1_000_000), | ||
| 28 | Config::default(), | ||
| 29 | ); | ||
| 30 | 24 | ||
| 31 | for n in 0u32.. { | 25 | for n in 0u32.. { |
| 32 | let mut write: String<128> = String::new(); | 26 | let mut write: String<128> = String::new(); |
diff --git a/examples/stm32f4/src/bin/usb_ethernet.rs b/examples/stm32f4/src/bin/usb_ethernet.rs index b1f01417c..740d3018e 100644 --- a/examples/stm32f4/src/bin/usb_ethernet.rs +++ b/examples/stm32f4/src/bin/usb_ethernet.rs | |||
| @@ -6,7 +6,7 @@ use defmt::*; | |||
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_net::tcp::TcpSocket; | 7 | use embassy_net::tcp::TcpSocket; |
| 8 | use embassy_net::{Stack, StackResources}; | 8 | use embassy_net::{Stack, StackResources}; |
| 9 | use embassy_stm32::rng::Rng; | 9 | use embassy_stm32::rng::{self, Rng}; |
| 10 | use embassy_stm32::time::mhz; | 10 | use embassy_stm32::time::mhz; |
| 11 | use embassy_stm32::usb_otg::Driver; | 11 | use embassy_stm32::usb_otg::Driver; |
| 12 | use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; | 12 | use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; |
| @@ -38,6 +38,7 @@ async fn net_task(stack: &'static Stack<Device<'static, MTU>>) -> ! { | |||
| 38 | 38 | ||
| 39 | bind_interrupts!(struct Irqs { | 39 | bind_interrupts!(struct Irqs { |
| 40 | OTG_FS => usb_otg::InterruptHandler<peripherals::USB_OTG_FS>; | 40 | OTG_FS => usb_otg::InterruptHandler<peripherals::USB_OTG_FS>; |
| 41 | HASH_RNG => rng::InterruptHandler<peripherals::RNG>; | ||
| 41 | }); | 42 | }); |
| 42 | 43 | ||
| 43 | #[embassy_executor::main] | 44 | #[embassy_executor::main] |
| @@ -104,7 +105,7 @@ async fn main(spawner: Spawner) { | |||
| 104 | //}); | 105 | //}); |
| 105 | 106 | ||
| 106 | // Generate random seed | 107 | // Generate random seed |
| 107 | let mut rng = Rng::new(p.RNG); | 108 | let mut rng = Rng::new(p.RNG, Irqs); |
| 108 | let mut seed = [0; 8]; | 109 | let mut seed = [0; 8]; |
| 109 | unwrap!(rng.async_fill_bytes(&mut seed).await); | 110 | unwrap!(rng.async_fill_bytes(&mut seed).await); |
| 110 | let seed = u64::from_le_bytes(seed); | 111 | let seed = u64::from_le_bytes(seed); |
