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_v1`] - OmniTiles STM32F777 pin assignments for PCB v1
12//! - [`led`] – Active-high / active-low LED wrapper
13//! - [`usart`] – Blocking TX helpers with `core::fmt::Write` impl
14//! - [`spi`] – Blocking byte-level SPI and reusable CS abstraction
15//! - [`i2c`] – Blocking I2C bus wrapper
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 i2c;
24pub mod led;
25pub mod pins_devboard;
26pub mod pins_f767zi;
27pub mod pins_v1;
28pub mod spi;
29pub mod usart;
30
31pub use adc::Adc;
32pub use can::CanBus;
33pub use encoder::Encoder;
34pub use i2c::I2cBus;
35pub use led::Led;
36pub use pins_v1::BoardPins;
37pub use spi::ChipSelect;
38pub use spi::SpiBus;
39pub use usart::Usart;