VSF Documented
sthal_uart_base.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2024 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __ST_HAL_UART_BASE_H__
19#define __ST_HAL_UART_BASE_H__
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#if VSF_HAL_USE_USART == ENABLED
26
27/*============================ INCLUDES ======================================*/
28/*============================ MACROS ========================================*/
29/*============================ MACROFIED FUNCTIONS ===========================*/
30/*============================ TYPES =========================================*/
31
32typedef enum {
38
39typedef struct {
45
46 uint32_t Prescaler; // USART/SMARTCard/IRDA Only
47 union {
48 struct { // UART Only
51 };
52 struct { // USART/SMARTCard
58 };
59 struct { // IRDA
61 };
62 };
64
65typedef enum {
75
79
80typedef struct __UART_HandleTypeDef {
95
96 // all callback for uart/usart/irda/smartcard
98 void (*TxCpltCallback)(struct __UART_HandleTypeDef *huart);
100 void (*RxCpltCallback)(struct __UART_HandleTypeDef *huart);
104 void (*WakeupCallback)(struct __UART_HandleTypeDef *huart);
105 void (*MspInitCallback)(struct __UART_HandleTypeDef *huart);
107 void (*ErrorCallback)(struct __UART_HandleTypeDef *huart);
108
109 void (*RxEventCallback)(struct __UART_HandleTypeDef *huart, uint16_t Pos);
110 void (*TxRxCpltCallback)(struct __UART_HandleTypeDef *husart);
111
112
113 // private
114 volatile bool __RxDMA;
115 volatile bool __TxCpltCallback;
117};
118
119# if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
120typedef enum {
121 __HAL_UART_TX_HALFCOMPLETE_CB_ID = 0x00U,
122 __HAL_UART_TX_COMPLETE_CB_ID = 0x01U,
123 __HAL_UART_RX_HALFCOMPLETE_CB_ID = 0x02U,
124 __HAL_UART_RX_COMPLETE_CB_ID = 0x03U,
125 __HAL_UART_ERROR_CB_ID = 0x04U,
126 __HAL_UART_ABORT_COMPLETE_CB_ID = 0x05U,
127 __HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID = 0x06U,
128 __HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID = 0x07U,
129 __HAL_UART_WAKEUP_CB_ID = 0x08U,
130 __HAL_UART_TX_RX_COMPLETE_CB_ID = 0x09U,
131 __HAL_UART_MSPINIT_CB_ID = 0x0BU,
132 __HAL_UART_MSPDEINIT_CB_ID = 0x0CU,
133};
134# endif
135
136/*============================ GLOBAL VARIABLES ==============================*/
137/*============================ PROTOTYPES ====================================*/
138
139#endif
140
141#ifdef __cplusplus
142}
143#endif
144
145#endif /* __ST_HAL_UART_BASE_H__ */
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
HAL_LockTypeDef
Definition sthal_def.h:72
vsf_usart_t __UART_TypeDef
Definition sthal_uart_base.h:76
uint32_t HAL_UART_RxTypeTypeDef
Definition sthal_uart_base.h:77
__HAL_UART_StateTypeDef
Definition sthal_uart_base.h:65
@ __HAL_UART_STATE_ERROR
Definition sthal_uart_base.h:73
@ __HAL_UART_STATE_READY
Definition sthal_uart_base.h:67
@ __HAL_UART_STATE_BUSY_TX
Definition sthal_uart_base.h:69
@ __HAL_UART_STATE_BUSY_TX_RX
Definition sthal_uart_base.h:71
@ __HAL_UART_STATE_RESET
Definition sthal_uart_base.h:66
@ __HAL_UART_STATE_TIMEOUT
Definition sthal_uart_base.h:72
@ __HAL_UART_STATE_BUSY
Definition sthal_uart_base.h:68
@ __HAL_UART_STATE_BUSY_RX
Definition sthal_uart_base.h:70
uint32_t HAL_UART_RxEventTypeTypeDef
Definition sthal_uart_base.h:78
__UART_Typedef
Definition sthal_uart_base.h:32
@ __HAL_UART_TYPE_SMARTCARD
Definition sthal_uart_base.h:36
@ __HAL_UART_TYPE_UART
Definition sthal_uart_base.h:33
@ __HAL_UART_TYPE_IRDA
Definition sthal_uart_base.h:35
@ __HAL_UART_TYPE_USART
Definition sthal_uart_base.h:34
Definition sthal_uart_base.h:80
__UART_TypeDef * Instance
Definition sthal_uart_base.h:81
uint16_t TxXferSize
Definition sthal_uart_base.h:84
void(* AbortReceiveCpltCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:103
HAL_LockTypeDef Lock
Definition sthal_uart_base.h:91
void(* RxHalfCpltCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:99
void(* MspInitCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:105
__UART_Typedef __Type
Definition sthal_uart_base.h:116
volatile bool __TxCpltCallback
Definition sthal_uart_base.h:115
volatile HAL_UART_RxEventTypeTypeDef RxEventType
Definition sthal_uart_base.h:90
uint8_t * pRxBuffPtr
Definition sthal_uart_base.h:86
volatile bool __RxDMA
Definition sthal_uart_base.h:114
void(* TxRxCpltCallback)(struct __UART_HandleTypeDef *husart)
Definition sthal_uart_base.h:110
void(* TxHalfCpltCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:97
void(* AbortCpltCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:101
volatile uint32_t ErrorCode
Definition sthal_uart_base.h:94
void(* AbortTransmitCpltCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:102
void(* MspDeInitCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:106
volatile __HAL_UART_StateTypeDef RxState
Definition sthal_uart_base.h:93
volatile uint16_t TxXferCount
Definition sthal_uart_base.h:85
volatile __HAL_UART_StateTypeDef gState
Definition sthal_uart_base.h:92
void(* RxCpltCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:100
void(* WakeupCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:104
void(* ErrorCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:107
void(* TxCpltCallback)(struct __UART_HandleTypeDef *huart)
Definition sthal_uart_base.h:98
volatile uint16_t RxXferCount
Definition sthal_uart_base.h:88
volatile HAL_UART_RxTypeTypeDef ReceptionType
Definition sthal_uart_base.h:89
void(* RxEventCallback)(struct __UART_HandleTypeDef *huart, uint16_t Pos)
Definition sthal_uart_base.h:109
const uint8_t * pTxBuffPtr
Definition sthal_uart_base.h:83
uint16_t RxXferSize
Definition sthal_uart_base.h:87
__UART_InitTypeDef Init
Definition sthal_uart_base.h:82
Definition sthal_uart_base.h:39
uint32_t BaudRate
Definition sthal_uart_base.h:40
uint32_t CLKPolarity
Definition sthal_uart_base.h:53
uint32_t NACKState
Definition sthal_uart_base.h:57
uint32_t WordLength
Definition sthal_uart_base.h:41
uint32_t OverSampling
Definition sthal_uart_base.h:50
uint32_t CLKLastBit
Definition sthal_uart_base.h:55
uint32_t GuardTime
Definition sthal_uart_base.h:56
uint32_t Parity
Definition sthal_uart_base.h:43
uint32_t HwFlowCtl
Definition sthal_uart_base.h:49
uint32_t CLKPhase
Definition sthal_uart_base.h:54
uint32_t StopBits
Definition sthal_uart_base.h:42
uint32_t Mode
Definition sthal_uart_base.h:44
uint32_t Prescaler
Definition sthal_uart_base.h:46
uint32_t IrDAMode
Definition sthal_uart_base.h:60
Definition vsf_template_usart.h:661