8#ifndef INC_UART_PORT_H_
9#define INC_UART_PORT_H_
20#ifdef UBI_SDK_FAMILY_STM32
29 uint16_t read_counter;
30 uint16_t write_counter;
39 uint16_t rx_buffer_size;
42 uint16_t tx_buffer_size;
44 UART_HandleTypeDef* uart_config;
46 }uart_init_port_struct;
52 uart_init_port_struct* init_struct;
54 uint8_t wait_receive_enable;
61 extern buffer_queue_struct tx_queue;
62 extern buffer_queue_struct rx_queue;
65 void uart_port_init(uart_init_port_struct* init_struct, uart_port_struct** out_port_struct);
66 void uart_port_wait_receive(uart_port_struct* port_str, uint32_t offset, uint32_t len);
68void uart_port_init0(UART_HandleTypeDef* huart);
70void uart_port_transmit(uint8_t* Buf, uint16_t Size);
74void uart_port_receive(UART_HandleTypeDef* huart);
76void uart_port_start(
void* p);
78void uart_port_wait_fixed_receive();
79void uart_port_wait_float_receive(uint16_t size);
81bool uart_port_receive_float_len();
84uint8_t* ReadQueue(buffer_queue_struct* buffer_queue, uint16_t size);
86uint16_t QueueSize(buffer_queue_struct* buffer_queue);
88uint8_t* GetQueueBufferPointer(buffer_queue_struct* buffer_queue, uint16_t* size);
89bool FinishWriteToBuffer(buffer_queue_struct* buffer_queue, uint16_t Size);