aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32c0/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-01-17 18:54:43 +0100
committerDario Nieuwenhuis <[email protected]>2023-01-17 21:28:16 +0100
commit355761fd68a238033bcb3441d949bf5115b1a84a (patch)
tree4b64bde02cf58f39622588ea9f41b0d02427b1ae /examples/stm32c0/src
parent2a349afea791d2cb262497433a2ad24c3010a696 (diff)
stm32: add stm32c0 examples.
Diffstat (limited to 'examples/stm32c0/src')
-rw-r--r--examples/stm32c0/src/bin/blinky.rs27
-rw-r--r--examples/stm32c0/src/bin/button.rs25
-rw-r--r--examples/stm32c0/src/bin/button_exti.rs27
3 files changed, 79 insertions, 0 deletions
diff --git a/examples/stm32c0/src/bin/blinky.rs b/examples/stm32c0/src/bin/blinky.rs
new file mode 100644
index 000000000..8a65b0692
--- /dev/null
+++ b/examples/stm32c0/src/bin/blinky.rs
@@ -0,0 +1,27 @@
1#![no_std]
2#![no_main]
3#![feature(type_alias_impl_trait)]
4
5use defmt::*;
6use embassy_executor::Spawner;
7use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_time::{Duration, Timer};
9use {defmt_rtt as _, panic_probe as _};
10
11#[embassy_executor::main]
12async fn main(_spawner: Spawner) {
13 let p = embassy_stm32::init(Default::default());
14 info!("Hello World!");
15
16 let mut led = Output::new(p.PA5, Level::High, Speed::Low);
17
18 loop {
19 info!("high");
20 led.set_high();
21 Timer::after(Duration::from_millis(300)).await;
22
23 info!("low");
24 led.set_low();
25 Timer::after(Duration::from_millis(300)).await;
26 }
27}
diff --git a/examples/stm32c0/src/bin/button.rs b/examples/stm32c0/src/bin/button.rs
new file mode 100644
index 000000000..72a3f5cbf
--- /dev/null
+++ b/examples/stm32c0/src/bin/button.rs
@@ -0,0 +1,25 @@
1#![no_std]
2#![no_main]
3#![feature(type_alias_impl_trait)]
4
5use cortex_m_rt::entry;
6use defmt::*;
7use embassy_stm32::gpio::{Input, Pull};
8use {defmt_rtt as _, panic_probe as _};
9
10#[entry]
11fn main() -> ! {
12 info!("Hello World!");
13
14 let p = embassy_stm32::init(Default::default());
15
16 let button = Input::new(p.PC13, Pull::Up);
17
18 loop {
19 if button.is_high() {
20 info!("high");
21 } else {
22 info!("low");
23 }
24 }
25}
diff --git a/examples/stm32c0/src/bin/button_exti.rs b/examples/stm32c0/src/bin/button_exti.rs
new file mode 100644
index 000000000..ef32d4c4a
--- /dev/null
+++ b/examples/stm32c0/src/bin/button_exti.rs
@@ -0,0 +1,27 @@
1#![no_std]
2#![no_main]
3#![feature(type_alias_impl_trait)]
4
5use defmt::*;
6use embassy_executor::Spawner;
7use embassy_stm32::exti::ExtiInput;
8use embassy_stm32::gpio::{Input, Pull};
9use {defmt_rtt as _, panic_probe as _};
10
11#[embassy_executor::main]
12async fn main(_spawner: Spawner) {
13 let p = embassy_stm32::init(Default::default());
14 info!("Hello World!");
15
16 let button = Input::new(p.PC13, Pull::Up);
17 let mut button = ExtiInput::new(button, p.EXTI13);
18
19 info!("Press the USER button...");
20
21 loop {
22 button.wait_for_falling_edge().await;
23 info!("Pressed!");
24 button.wait_for_rising_edge().await;
25 info!("Released!");
26 }
27}