aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2022-02-10 21:38:03 +0100
committerDario Nieuwenhuis <[email protected]>2022-02-10 21:38:03 +0100
commitb99ab3d5d9d8fdee135956dcbc2111b00abd1d72 (patch)
tree53f3723e24ba49b98f0a792aa9835141ef56729e /examples
parent9d682aa1fae81d9bb56bb41304828144b9a0d4a7 (diff)
stm32: Add standard crate-wide macros for pin/dma traits, switch all drivers to use them.
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32f7/src/bin/eth.rs7
-rw-r--r--examples/stm32h7/src/bin/eth.rs7
-rw-r--r--examples/stm32h7/src/bin/low_level_timer_api.rs21
3 files changed, 21 insertions, 14 deletions
diff --git a/examples/stm32f7/src/bin/eth.rs b/examples/stm32f7/src/bin/eth.rs
index 521b031e3..15169d2dc 100644
--- a/examples/stm32f7/src/bin/eth.rs
+++ b/examples/stm32f7/src/bin/eth.rs
@@ -4,6 +4,7 @@
4 4
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7use embassy_stm32::peripherals::ETH;
7use example_common::config; 8use example_common::config;
8 9
9use cortex_m_rt::entry; 10use cortex_m_rt::entry;
@@ -27,7 +28,7 @@ use peripherals::RNG;
27 28
28#[embassy::task] 29#[embassy::task]
29async fn main_task( 30async fn main_task(
30 device: &'static mut Ethernet<'static, LAN8742A, 4, 4>, 31 device: &'static mut Ethernet<'static, ETH, LAN8742A, 4, 4>,
31 config: &'static mut StaticConfigurator, 32 config: &'static mut StaticConfigurator,
32 spawner: Spawner, 33 spawner: Spawner,
33) { 34) {
@@ -82,8 +83,8 @@ fn _embassy_rand(buf: &mut [u8]) {
82static mut RNG_INST: Option<Rng<RNG>> = None; 83static mut RNG_INST: Option<Rng<RNG>> = None;
83 84
84static EXECUTOR: Forever<Executor> = Forever::new(); 85static EXECUTOR: Forever<Executor> = Forever::new();
85static STATE: Forever<State<'static, 4, 4>> = Forever::new(); 86static STATE: Forever<State<'static, ETH, 4, 4>> = Forever::new();
86static ETH: Forever<Ethernet<'static, LAN8742A, 4, 4>> = Forever::new(); 87static ETH: Forever<Ethernet<'static, ETH, LAN8742A, 4, 4>> = Forever::new();
87static CONFIG: Forever<StaticConfigurator> = Forever::new(); 88static CONFIG: Forever<StaticConfigurator> = Forever::new();
88static NET_RESOURCES: Forever<StackResources<1, 2, 8>> = Forever::new(); 89static NET_RESOURCES: Forever<StackResources<1, 2, 8>> = Forever::new();
89 90
diff --git a/examples/stm32h7/src/bin/eth.rs b/examples/stm32h7/src/bin/eth.rs
index 9998bc4e9..47d8c5c56 100644
--- a/examples/stm32h7/src/bin/eth.rs
+++ b/examples/stm32h7/src/bin/eth.rs
@@ -4,6 +4,7 @@
4 4
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7use embassy_stm32::peripherals::ETH;
7use example_common::config; 8use example_common::config;
8 9
9use cortex_m_rt::entry; 10use cortex_m_rt::entry;
@@ -26,7 +27,7 @@ use peripherals::RNG;
26 27
27#[embassy::task] 28#[embassy::task]
28async fn main_task( 29async fn main_task(
29 device: &'static mut Ethernet<'static, LAN8742A, 4, 4>, 30 device: &'static mut Ethernet<'static, ETH, LAN8742A, 4, 4>,
30 config: &'static mut StaticConfigurator, 31 config: &'static mut StaticConfigurator,
31 spawner: Spawner, 32 spawner: Spawner,
32) { 33) {
@@ -81,8 +82,8 @@ fn _embassy_rand(buf: &mut [u8]) {
81static mut RNG_INST: Option<Rng<RNG>> = None; 82static mut RNG_INST: Option<Rng<RNG>> = None;
82 83
83static EXECUTOR: Forever<Executor> = Forever::new(); 84static EXECUTOR: Forever<Executor> = Forever::new();
84static STATE: Forever<State<'static, 4, 4>> = Forever::new(); 85static STATE: Forever<State<'static, ETH, 4, 4>> = Forever::new();
85static ETH: Forever<Ethernet<'static, LAN8742A, 4, 4>> = Forever::new(); 86static ETH: Forever<Ethernet<'static, ETH, LAN8742A, 4, 4>> = Forever::new();
86static CONFIG: Forever<StaticConfigurator> = Forever::new(); 87static CONFIG: Forever<StaticConfigurator> = Forever::new();
87static NET_RESOURCES: Forever<StackResources<1, 2, 8>> = Forever::new(); 88static NET_RESOURCES: Forever<StackResources<1, 2, 8>> = Forever::new();
88 89
diff --git a/examples/stm32h7/src/bin/low_level_timer_api.rs b/examples/stm32h7/src/bin/low_level_timer_api.rs
index 1bf69104d..0c99b0941 100644
--- a/examples/stm32h7/src/bin/low_level_timer_api.rs
+++ b/examples/stm32h7/src/bin/low_level_timer_api.rs
@@ -10,9 +10,10 @@ use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
11use embassy::util::Unborrow; 11use embassy::util::Unborrow;
12use embassy_hal_common::unborrow; 12use embassy_hal_common::unborrow;
13use embassy_stm32::pwm::{pins::*, Channel, OutputCompareMode}; 13use embassy_stm32::gpio::low_level::AFType;
14use embassy_stm32::gpio::Speed;
15use embassy_stm32::pwm::*;
14use embassy_stm32::time::{Hertz, U32Ext}; 16use embassy_stm32::time::{Hertz, U32Ext};
15use embassy_stm32::timer::GeneralPurpose32bitInstance;
16use embassy_stm32::{Config, Peripherals}; 17use embassy_stm32::{Config, Peripherals};
17use example_common::*; 18use example_common::*;
18 19
@@ -50,12 +51,12 @@ async fn main(_spawner: Spawner, p: Peripherals) {
50 Timer::after(Duration::from_millis(300)).await; 51 Timer::after(Duration::from_millis(300)).await;
51 } 52 }
52} 53}
53pub struct SimplePwm32<'d, T: GeneralPurpose32bitInstance> { 54pub struct SimplePwm32<'d, T: CaptureCompare32bitInstance> {
54 phantom: PhantomData<&'d mut T>, 55 phantom: PhantomData<&'d mut T>,
55 inner: T, 56 inner: T,
56} 57}
57 58
58impl<'d, T: GeneralPurpose32bitInstance> SimplePwm32<'d, T> { 59impl<'d, T: CaptureCompare32bitInstance> SimplePwm32<'d, T> {
59 pub fn new<F: Into<Hertz>>( 60 pub fn new<F: Into<Hertz>>(
60 tim: impl Unborrow<Target = T> + 'd, 61 tim: impl Unborrow<Target = T> + 'd,
61 ch1: impl Unborrow<Target = impl Channel1Pin<T>> + 'd, 62 ch1: impl Unborrow<Target = impl Channel1Pin<T>> + 'd,
@@ -70,10 +71,14 @@ impl<'d, T: GeneralPurpose32bitInstance> SimplePwm32<'d, T> {
70 <T as embassy_stm32::rcc::low_level::RccPeripheral>::reset(); 71 <T as embassy_stm32::rcc::low_level::RccPeripheral>::reset();
71 72
72 unsafe { 73 unsafe {
73 ch1.configure(); 74 ch1.set_speed(Speed::VeryHigh);
74 ch2.configure(); 75 ch1.set_as_af(ch1.af_num(), AFType::OutputPushPull);
75 ch3.configure(); 76 ch2.set_speed(Speed::VeryHigh);
76 ch4.configure(); 77 ch2.set_as_af(ch1.af_num(), AFType::OutputPushPull);
78 ch3.set_speed(Speed::VeryHigh);
79 ch3.set_as_af(ch1.af_num(), AFType::OutputPushPull);
80 ch4.set_speed(Speed::VeryHigh);
81 ch4.set_as_af(ch1.af_num(), AFType::OutputPushPull);
77 } 82 }
78 83
79 let mut this = Self { 84 let mut this = Self {