aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32f4/src
diff options
context:
space:
mode:
authorchemicstry <[email protected]>2023-07-31 10:29:20 +0300
committerchemicstry <[email protected]>2023-07-31 10:29:20 +0300
commit780569c08ab089dae67c5d57dd1852d5419d4577 (patch)
tree021965b7c9ac34fb33507c3998b3a6b6e7cecae7 /examples/stm32f4/src
parenta56ef685f3bfd9148a79c9dbbdde83a2c1642ba5 (diff)
parent6c6bd11c1a28eb8985518a10bd723c622d82f4b6 (diff)
Merge remote-tracking branch 'origin/main' into bxcan_timestamp
Diffstat (limited to 'examples/stm32f4/src')
-rw-r--r--examples/stm32f4/src/bin/eth.rs6
-rw-r--r--examples/stm32f4/src/bin/pwm.rs7
-rw-r--r--examples/stm32f4/src/bin/pwm_complementary.rs11
-rw-r--r--examples/stm32f4/src/bin/spi.rs14
-rw-r--r--examples/stm32f4/src/bin/spi_dma.rs14
-rw-r--r--examples/stm32f4/src/bin/usb_ethernet.rs5
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};
11use embassy_stm32::peripherals::ETH; 11use embassy_stm32::peripherals::ETH;
12use embassy_stm32::rng::Rng; 12use embassy_stm32::rng::Rng;
13use embassy_stm32::time::mhz; 13use embassy_stm32::time::mhz;
14use embassy_stm32::{bind_interrupts, eth, Config}; 14use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config};
15use embassy_time::{Duration, Timer}; 15use embassy_time::{Duration, Timer};
16use embedded_io::asynch::Write; 16use embedded_io::asynch::Write;
17use static_cell::make_static; 17use static_cell::make_static;
18use {defmt_rtt as _, panic_probe as _}; 18use {defmt_rtt as _, panic_probe as _};
19
19bind_interrupts!(struct Irqs { 20bind_interrupts!(struct Irqs {
20 ETH => eth::InterruptHandler; 21 ETH => eth::InterruptHandler;
22 HASH_RNG => rng::InterruptHandler<peripherals::RNG>;
21}); 23});
22 24
23type Device = Ethernet<'static, ETH, GenericSMI>; 25type 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
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::pwm::simple_pwm::{PwmPin, SimplePwm}; 7use embassy_stm32::gpio::OutputType;
8use embassy_stm32::pwm::Channel;
9use embassy_stm32::time::khz; 8use embassy_stm32::time::khz;
9use embassy_stm32::timer::simple_pwm::{PwmPin, SimplePwm};
10use embassy_stm32::timer::Channel;
10use embassy_time::{Duration, Timer}; 11use embassy_time::{Duration, Timer};
11use {defmt_rtt as _, panic_probe as _}; 12use {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
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::pwm::complementary_pwm::{ComplementaryPwm, ComplementaryPwmPin}; 7use embassy_stm32::gpio::OutputType;
8use embassy_stm32::pwm::simple_pwm::PwmPin;
9use embassy_stm32::pwm::Channel;
10use embassy_stm32::time::khz; 8use embassy_stm32::time::khz;
9use embassy_stm32::timer::complementary_pwm::{ComplementaryPwm, ComplementaryPwmPin};
10use embassy_stm32::timer::simple_pwm::PwmPin;
11use embassy_stm32::timer::Channel;
11use embassy_time::{Duration, Timer}; 12use embassy_time::{Duration, Timer};
12use {defmt_rtt as _, panic_probe as _}; 13use {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::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_net::tcp::TcpSocket; 7use embassy_net::tcp::TcpSocket;
8use embassy_net::{Stack, StackResources}; 8use embassy_net::{Stack, StackResources};
9use embassy_stm32::rng::Rng; 9use embassy_stm32::rng::{self, Rng};
10use embassy_stm32::time::mhz; 10use embassy_stm32::time::mhz;
11use embassy_stm32::usb_otg::Driver; 11use embassy_stm32::usb_otg::Driver;
12use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; 12use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config};
@@ -38,6 +38,7 @@ async fn net_task(stack: &'static Stack<Device<'static, MTU>>) -> ! {
38 38
39bind_interrupts!(struct Irqs { 39bind_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);