rustuino/
lib.rs

1#![no_std]
2#![allow(clippy::needless_return)]
3#![deny(warnings)]
4
5// Library includes ===============================================================================
6pub use stm32f4::stm32f446::{NVIC, Interrupt, interrupt, Peripherals};
7pub use cortex_m_rt::{entry, exception};
8pub use heapless::{Vec, String};
9pub use rtt_target::{rtt_init_print, rprint, rprintln};
10
11pub use include::pins::*;
12pub use gpio::{*, GpioBias::*, GpioSpeed::*};
13pub use analog::{adc_resolution, analog_read};
14pub use time::{pwm_write, delay, start_time, millis};
15
16
17// Submodule includes =============================================================================
18pub mod include;
19pub mod gpio;
20pub mod analog;
21pub mod time;
22pub mod uart;
23pub mod i2c;
24// pub mod spi;
25
26
27// Panic handler ==================================================================================
28use core::panic::PanicInfo;
29use core::sync::atomic::{compiler_fence, Ordering};
30
31#[inline(never)]
32#[panic_handler]
33fn panic(info: &PanicInfo) -> ! {
34  cortex_m::interrupt::disable();
35  rtt_target::rprintln!("{}", info);
36  loop {compiler_fence(Ordering::SeqCst);}
37}