protoflight 0.1.4

Protoflight flight controller.
#![cfg(feature = "stm32")]

use embassy_sync::{blocking_mutex::raw::NoopRawMutex, mutex::Mutex};

// Bus = raw hardware peripheral
// Device = bus + chip select + transaction locking

use embassy_stm32::{
    i2c::{I2c, mode::Master as I2cMaster},
    mode::{Async, Blocking},
    usart::{UartRx, UartTx},
};

pub type I2cDeviceBlocking = I2c<'static, Blocking, I2cMaster>;
pub type SharedI2cBus = Mutex<NoopRawMutex, I2cDeviceBlocking>;

pub type RadioUartRx = &'static mut UartRx<'static, Async>;
pub type RadioUartTx = &'static mut UartTx<'static, Async>;

pub type GpsUartRx = &'static mut UartRx<'static, Async>;
pub type GpsUartTx = &'static mut UartTx<'static, Async>;