omnitiles/hw/mod.rs
1// SPDX-License-Identifier: MIT
2// © 2025–2026 Christopher Liu
3
4//! # Hardware Abstraction Layer (HAL‐level board support)
5//!
6//! This module contains low-level, MCU-specific abstractions for the STM32F777 that are safe, thin
7//! wrappers over PAC (peripheral access crate) registers or `stm32f7xx-hal` drivers.
8//!
9//! ## Modules
10//!
11//! - [`pins`] - OmniTiles STM32F777 pin assignments
12//! - [`pins_f767zi`] - NUCLEO-F767ZI devboard pin assignments
13//! - [`led`] – Active-high / active-low LED wrapper
14//! - [`usart`] – Blocking TX helpers with `core::fmt::Write` impl
15//! - [`spi`] – Blocking byte-level SPI and reusable CS abstraction
16//! - [`can`] – Safe wrapper around `bxcan` with blocking send/receive
17//! - [`encoder`] – TIM2/TIM3 quadrature encoder mode
18//! - [`adc`] – ADC1/ADC2/ADC3 single-channel blocking reads
19
20pub mod adc;
21pub mod can;
22pub mod encoder;
23pub mod led;
24pub mod pins;
25pub mod pins_f767zi;
26pub mod spi;
27pub mod usart;
28
29pub use adc::Adc;
30pub use can::CanBus;
31pub use encoder::Encoder;
32pub use led::Led;
33pub use pins::BoardPins;
34pub use spi::ChipSelect;
35pub use spi::SpiBus;
36pub use usart::Usart;