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 {
82 
86 typedef enum
87 {
93 
97 typedef enum
98 {
105 
115 typedef struct
116 {
119  uint32_t pin;
124 
128 typedef struct
129 {
135 
139 typedef struct
140 {
145 
149 typedef struct
150 {
156 
160 typedef struct
161 {
163  union
164  {
165  uint32_t error_code;
166  uint16_t size;
167  } data;
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;
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 
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 
280 
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