app_uart.h
Go to the documentation of this file.
1
52 #ifndef _APP_UART_H_
53 #define _APP_UART_H_
54
55 #include "gr55xx_hal.h"
56 #include "ring_buffer.h"
57 #include "app_io.h"
58
59 #ifdef ENV_USE_FREERTOS
60 #include "app_rtos_cfg.h"
61 #endif
62
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66
67 #ifdef HAL_UART_MODULE_ENABLED
68
76 typedef enum
77 {
78 APP_UART_ID_0,
79 APP_UART_ID_1,
80 APP_UART_ID_MAX,
81 }app_uart_id_t;
82
86 typedef enum
87 {
88 APP_UART_TYPE_INTERRUPT,
89 APP_UART_TYPE_POLLING,
90 APP_UART_TYPE_DMA,
91 APP_UART_TYPE_MAX,
92 }app_uart_type_t;
93
97 typedef enum
98 {
99 APP_UART_EVT_ERROR,
100 APP_UART_EVT_TX_CPLT,
101 APP_UART_EVT_RX_DATA,
102 APP_UART_EVT_ABORT_TX,
103 APP_UART_EVT_ABORT_RX,
104 } app_uart_evt_type_t;
105
115 typedef struct
116 {
117 app_io_type_t type;
118 app_io_mux_t mux;
119 uint32_t pin;
121 app_io_pull_t pull;
123 }app_uart_pin_t;
124
128 typedef struct
129 {
130 app_uart_pin_t tx;
131 app_uart_pin_t rx;
132 app_uart_pin_t cts;
133 app_uart_pin_t rts;
134 }app_uart_pin_cfg_t;
135
139 typedef struct
140 {
141 app_uart_type_t type;
142 dma_channel_t tx_dma_channel;
143 dma_channel_t rx_dma_channel;
144 }app_uart_mode_t;
145
149 typedef struct
150 {
151 app_uart_id_t id;
152 app_uart_pin_cfg_t pin_cfg;
153 app_uart_mode_t use_mode;
154 uart_init_t init;
155 } app_uart_params_t;
156
160 typedef struct
161 {
162 app_uart_evt_type_t type;
163 union
164 {
165 uint32_t error_code;
166 uint16_t size;
167 } data;
168 } app_uart_evt_t;
169
173 typedef void (*app_uart_evt_handler_t)(app_uart_evt_t *p_evt);
174
178 typedef struct
179 {
180 uint8_t * tx_buf;
181 uint32_t tx_buf_size;
182 } app_uart_tx_buf_t;
186 /* Exported functions --------------------------------------------------------*/
203 uint16_t app_uart_init(app_uart_params_t *p_params, app_uart_evt_handler_t evt_handler, app_uart_tx_buf_t *tx_buffer);
204
214 uint16_t app_uart_deinit(app_uart_id_t id);
215
227 uint16_t app_uart_transmit_async(app_uart_id_t id, uint8_t *p_data, uint16_t size);
228
241 uint16_t app_uart_transmit_sync(app_uart_id_t id, uint8_t *p_data, uint16_t size, uint32_t timeout);
242
254 uint16_t app_uart_receive_async(app_uart_id_t id, uint8_t *p_data, uint16_t size);
255
268 uint16_t app_uart_receive_sync(app_uart_id_t id, uint8_t *p_data, uint16_t size, uint32_t timeout);
269
279 uart_handle_t *app_uart_get_handle(app_uart_id_t id);
280
289 void app_uart_flush(app_uart_id_t id);
290
291
292 #ifdef ENV_RTOS_USE_SEMP
293
304 uint16_t app_uart_receive_sem_sync(app_uart_id_t id, uint8_t *p_data, uint16_t size);
305
317 uint16_t app_uart_transmit_sem_sync(app_uart_id_t id, uint8_t *p_data, uint16_t size);
318
319 #endif
320
323 #endif
324
325 #ifdef __cplusplus
326 }
327 #endif
328
329 #endif
330
app_uart_pin_cfg_t::rx
app_uart_pin_t rx
Definition: app_uart.h:131
app_uart_params_t::pin_cfg
app_uart_pin_cfg_t pin_cfg
Definition: app_uart.h:152
app_uart_pin_t::pull
app_io_pull_t pull
Definition: app_uart.h:121
app_uart_params_t::init
uart_init_t init
Definition: app_uart.h:154
APP_UART_EVT_ABORT_RX
@ APP_UART_EVT_ABORT_RX
Definition: app_uart.h:103
app_uart_evt_type_t
app_uart_evt_type_t
UART event Enumerations definition.
Definition: app_uart.h:98
app_uart_transmit_sync
uint16_t app_uart_transmit_sync(app_uart_id_t id, uint8_t *p_data, uint16_t size, uint32_t timeout)
Send an amount of data in blocking mode.
APP_UART_TYPE_MAX
@ APP_UART_TYPE_MAX
Definition: app_uart.h:91
app_uart_params_t::use_mode
app_uart_mode_t use_mode
Definition: app_uart.h:153
app_uart_params_t::id
app_uart_id_t id
Definition: app_uart.h:151
APP_UART_TYPE_POLLING
@ APP_UART_TYPE_POLLING
Definition: app_uart.h:89
app_uart_pin_cfg_t::cts
app_uart_pin_t cts
Definition: app_uart.h:132
app_uart_deinit
uint16_t app_uart_deinit(app_uart_id_t id)
De-initialize the APP UART DRIVER peripheral.
app_uart_init
uint16_t app_uart_init(app_uart_params_t *p_params, app_uart_evt_handler_t evt_handler, app_uart_tx_buf_t *tx_buffer)
Initialize the APP UART DRIVER according to the specified parameters in the app_uart_params_t and app...
app_io_pull_t
app_io_pull_t
GPIO pull Enumerations definition.
Definition: app_io.h:187
app_io_type_t
app_io_type_t
GPIO type Enumerations definition.
Definition: app_io.h:141
APP_UART_EVT_ABORT_TX
@ APP_UART_EVT_ABORT_TX
Definition: app_uart.h:102
_uart_handle
UART handle Structure definition.
Definition: gr55xx_hal_uart.h:153
app_uart_params_t
UART parameters structure definition.
Definition: app_uart.h:150
app_uart_mode_t::tx_dma_channel
dma_channel_t tx_dma_channel
Definition: app_uart.h:142
app_uart_tx_buf_t
UART buffer structure definition.
Definition: app_uart.h:179
app_uart_tx_buf_t::tx_buf_size
uint32_t tx_buf_size
Definition: app_uart.h:181
app_uart_pin_cfg_t::tx
app_uart_pin_t tx
Definition: app_uart.h:130
app_uart_mode_t
UART operate mode Enumerations definition.
Definition: app_uart.h:140
_uart_init
UART init structure definition.
Definition: gr55xx_hal_uart.h:120
APP_UART_ID_0
@ APP_UART_ID_0
Definition: app_uart.h:78
app_io.h
Header file containing functions prototypes of GPIO app library.
app_uart_tx_buf_t::tx_buf
uint8_t * tx_buf
Definition: app_uart.h:180
app_uart_evt_handler_t
void(* app_uart_evt_handler_t)(app_uart_evt_t *p_evt)
UART event callback definition.
Definition: app_uart.h:173
app_uart_evt_t::type
app_uart_evt_type_t type
Definition: app_uart.h:162
APP_UART_EVT_RX_DATA
@ APP_UART_EVT_RX_DATA
Definition: app_uart.h:101
app_uart_receive_sync
uint16_t app_uart_receive_sync(app_uart_id_t id, uint8_t *p_data, uint16_t size, uint32_t timeout)
Receive an amount of data in blocking mode.
app_uart_evt_t
UART event structure definition.
Definition: app_uart.h:161
app_uart_evt_t::size
uint16_t size
Definition: app_uart.h:166
app_uart_receive_async
uint16_t app_uart_receive_async(app_uart_id_t id, uint8_t *p_data, uint16_t size)
Receive an amount of data in interrupt mode.
APP_UART_ID_MAX
@ APP_UART_ID_MAX
Definition: app_uart.h:80
app_uart_mode_t::type
app_uart_type_t type
Definition: app_uart.h:141
gr55xx_hal.h
This file contains all the functions prototypes for the HAL module driver.
app_uart_transmit_async
uint16_t app_uart_transmit_async(app_uart_id_t id, uint8_t *p_data, uint16_t size)
Send an amount of data in interrupt mode.
app_uart_get_handle
uart_handle_t * app_uart_get_handle(app_uart_id_t id)
Return the UART handle.
APP_UART_TYPE_INTERRUPT
@ APP_UART_TYPE_INTERRUPT
Definition: app_uart.h:88
app_uart_pin_t::mux
app_io_mux_t mux
Definition: app_uart.h:118
app_uart_id_t
app_uart_id_t
UART module Enumerations definition.
Definition: app_uart.h:77
app_io_mux_t
app_io_mux_t
GPIO mux Enumerations definition.
Definition: app_io.h:198
app_uart_pin_cfg_t::rts
app_uart_pin_t rts
Definition: app_uart.h:133
app_uart_pin_t::pin
uint32_t pin
Definition: app_uart.h:119
APP_UART_TYPE_DMA
@ APP_UART_TYPE_DMA
Definition: app_uart.h:90
app_uart_pin_cfg_t
UART IO configuration Structures.
Definition: app_uart.h:129
app_uart_evt_t::error_code
uint32_t error_code
Definition: app_uart.h:165
APP_UART_EVT_ERROR
@ APP_UART_EVT_ERROR
Definition: app_uart.h:99
app_rtos_cfg.h
Header file of app rtos config code.
app_uart_pin_t
UART IO Structures.
Definition: app_uart.h:116
app_uart_flush
void app_uart_flush(app_uart_id_t id)
Flush all log entries from the buffer.
app_uart_type_t
app_uart_type_t
UART operating mode Enumerations definition.
Definition: app_uart.h:87
APP_UART_ID_1
@ APP_UART_ID_1
Definition: app_uart.h:79
app_uart_pin_t::type
app_io_type_t type
Definition: app_uart.h:117
app_uart_mode_t::rx_dma_channel
dma_channel_t rx_dma_channel
Definition: app_uart.h:143
dma_channel_t
dma_channel_t
HAL DMA Channel Enumerations definition.
Definition: gr55xx_hal_dma.h:93
APP_UART_EVT_TX_CPLT
@ APP_UART_EVT_TX_CPLT
Definition: app_uart.h:100