8#ifndef INC_SPI_SLAVE_PORT_H_
9#define INC_SPI_SLAVE_PORT_H_
18#ifdef HAL_SPI_MODULE_ENABLED
24#ifdef UBI_SDK_FAMILY_STM32
28#ifdef HAL_SPI_MODULE_ENABLED
38 SPIRME_RECEIVE_IRQ = 0x00,
39 SPIRME_RECEIVE_COLLECT = 0x01
40 }spi_receive_mode_enum;
45 uint16_t rx_buffer_size;
48 uint16_t tx_buffer_size;
49 SPI_HandleTypeDef* config;
51 }spi_slave_init_port_struct;
57 spi_slave_init_port_struct* init_struct;
59 uint8_t wait_receive_enable;
61 spi_mode_enum current_mode;
62 spi_receive_mode_enum current_receive_mode;
64 uint32_t current_rx_offset;
65 uint32_t current_rx_len;
67 }spi_slave_port_struct;
72void spi_slave_port_init(spi_slave_init_port_struct* init_struct, spi_slave_port_struct** out_port_struct);
73void spi_slave_port_wait_receive(spi_slave_port_struct* port_str, uint32_t offset, uint32_t len);
74void spi_slave_port_start_receive(spi_slave_port_struct* port_str);
75void spi_slave_port_init0(SPI_HandleTypeDef* huart);
77void spi_slave_port_transmit(uint8_t* Buf, uint16_t Size);
81void spi_slave_port_receive(SPI_HandleTypeDef* huart);
83void spi_slave_port_start(
void* p);
85void spi_slave_port_wait_fixed_receive();
86void spi_slave_port_wait_float_receive(uint16_t size);
88bool spi_slave_port_receive_float_len();