escw_mcu_stm32/hal/
uart.rs

1use super::HalStatus;
2
3#[repr(C)]
4#[derive(PartialEq, Eq)]
5pub enum State {
6    Reset = 0x00,
7    Ready = 0x20,
8    Busy = 0x24,
9    BusyTx = 0x21,
10    BusyRx = 0x22,
11    BusyTxRx = 0x23,
12    Timeout = 0xA0,
13    Error = 0xE0,
14}
15
16#[repr(C)]
17pub struct Huart {
18    pub instance: u32,
19}
20
21extern "C" {
22    #[cfg(feature = "uart1")]
23    pub static huart1: Huart;
24    #[cfg(feature = "uart2")]
25    pub static huart2: Huart;
26    #[cfg(feature = "uart3")]
27    pub static huart3: Huart;
28    #[cfg(feature = "uart4")]
29    pub static huart4: Huart;
30    #[cfg(feature = "uart5")]
31    pub static huart5: Huart;
32    #[cfg(feature = "uart6")]
33    pub static huart6: Huart;
34    #[cfg(feature = "uart7")]
35    pub static huart7: Huart;
36    #[cfg(feature = "uart8")]
37    pub static huart8: Huart;
38}
39
40extern "C" {
41    pub fn HAL_UART_Transmit(huart: &Huart, pData: *const u8, Size: u16, Timeout: u32)
42        -> HalStatus;
43    pub fn HAL_UART_Receive(huart: &Huart, pData: *const u8, Size: u16, Timeout: u32) -> HalStatus;
44    pub fn HAL_UART_Transmit_IT(huart: &Huart, pData: *const u8, Size: u16) -> HalStatus;
45    pub fn HAL_UART_Receive_IT(huart: &Huart, pData: *const u8, Size: u16) -> HalStatus;
46    pub fn HAL_UART_Transmit_DMA(huart: &Huart, pData: *const u8, Size: u16) -> HalStatus;
47    pub fn HAL_UART_Receive_DMA(huart: &Huart, pData: *const u8, Size: u16) -> HalStatus;
48    pub fn HAL_UART_Abort(huart: &Huart) -> HalStatus;
49    pub fn HAL_UART_AbortTransmit(huart: &Huart) -> HalStatus;
50    pub fn HAL_UART_AbortReceive(huart: &Huart) -> HalStatus;
51    pub fn HAL_UART_Abort_IT(huart: &Huart) -> HalStatus;
52    pub fn HAL_UART_AbortTransmit_IT(huart: &Huart) -> HalStatus;
53    pub fn HAL_UART_AbortReceive_IT(huart: &Huart) -> HalStatus;
54    pub fn HAL_UARTEx_ReceiveToIdle(
55        huart: &Huart,
56        pData: *const u8,
57        Size: u16,
58        RxLen: &u16,
59        Timeout: u32,
60    ) -> HalStatus;
61    pub fn HAL_UARTEx_ReceiveToIdle_IT(huart: &Huart, pData: *const u8, Size: u16) -> HalStatus;
62    pub fn HAL_UARTEx_ReceiveToIdle_DMA(huart: &Huart, pData: *const u8, Size: u16) -> HalStatus;
63    pub fn HAL_UART_GetState(huart: &Huart) -> State;
64}