aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/stm32wl/src/bin/random.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/stm32wl/src/bin/random.rs b/examples/stm32wl/src/bin/random.rs
new file mode 100644
index 000000000..182c607f9
--- /dev/null
+++ b/examples/stm32wl/src/bin/random.rs
@@ -0,0 +1,33 @@
1#![no_std]
2#![no_main]
3#![feature(type_alias_impl_trait)]
4
5use defmt::*;
6use embassy_executor::Spawner;
7use embassy_stm32::pac;
8use embassy_stm32::rng::Rng;
9use {defmt_rtt as _, panic_probe as _};
10
11#[embassy_executor::main]
12async fn main(_spawner: Spawner) {
13 let mut config = embassy_stm32::Config::default();
14 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32;
15 config.rcc.enable_lsi = true; //Needed for RNG to work
16
17 let p = embassy_stm32::init(config);
18 unsafe {
19 pac::RCC.ccipr().modify(|w| {
20 w.set_rngsel(0b01);
21 });
22 }
23
24 info!("Hello World!");
25
26 let mut rng = Rng::new(p.RNG);
27
28 let mut buf = [0u8; 16];
29 unwrap!(rng.async_fill_bytes(&mut buf).await);
30 info!("random bytes: {:02x}", buf);
31
32 loop {}
33}