VSF Documented
sthal_irda.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_IRDA_H__
19#define __ST_HAL_IRDA_H__
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#if VSF_HAL_USE_USART == ENABLED && defined(HAL_IRDA_MODULE_ENABLED)
26
27/*============================ INCLUDES ======================================*/
28
29# include "sthal_uart_base.h"
30
31/*============================ MACROS ========================================*/
32
33# define HAL_IRDA_ERROR_NONE 0x00000000U
34# define HAL_IRDA_ERROR_PE 0x00000001U
35# define HAL_IRDA_ERROR_NE 0x00000002U
36# define HAL_IRDA_ERROR_FE 0x00000004U
37# define HAL_IRDA_ERROR_ORE 0x00000008U
38# define HAL_IRDA_ERROR_DMA 0x00000010U
39# if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
40# define HAL_IRDA_ERROR_INVALID_CALLBACK ((uint32_t)0x00000020U)
41# endif
42
43# define IRDA_WORDLENGTH_8B VSF_USART_8_BIT_LENGTH
44# define IRDA_WORDLENGTH_9B VSF_USART_9_BIT_LENGTH
45
46# define IRDA_PARITY_NONE VSF_USART_NO_PARITY
47# define IRDA_PARITY_EVEN VSF_USART_EVEN_PARITY
48# define IRDA_PARITY_ODD VSF_USART_ODD_PARITY
49
50# define IRDA_MODE_RX (VSF_USART_TX_ENABLE | VSF_USART_RX_DISABLE)
51# define IRDA_MODE_TX (VSF_USART_RX_ENABLE | VSF_USART_TX_DISABLE)
52# define IRDA_MODE_TX_RX (VSF_USART_TX_ENABLE | VSF_USART_RX_ENABLE)
53
54# if defined(VSF_USART_IRDA_POWER_MODE_MASK)
55# if define VSF_USART_IRDA_POWER_MODE_NORMAL
56# define IRDA_POWERMODE_NORMAL VSF_USART_IRDA_POWER_MODE_NORMAL
57# else
58# define IRDA_POWERMODE_NORMAL 0
59# endif
60# if define VSF_USART_IRDA_POWER_MODE_LOW_POWER
61# define IRDA_POWERMODE_LOWPOWER VSF_USART_IRDA_POWER_MODE_LOW_POWER
62# else
63# define IRDA_POWERMODE_LOWPOWER 0
64# endif
65# endif
66
67# ifndef IRDA_POWERMODE_NORMAL
68# define IRDA_POWERMODE_NORMAL 0
69# endif
70
71# ifndef IRDA_POWERMODE_LOWPOWER
72# define IRDA_POWERMODE_LOWPOWER 0
73# endif
74
75/*============================ MACROFIED FUNCTIONS ===========================*/
76/*============================ TYPES =========================================*/
77
78typedef enum {
79 HAL_IRDA_STATE_RESET = __HAL_UART_STATE_RESET,
80 HAL_IRDA_STATE_READY = __HAL_UART_STATE_READY,
81 HAL_IRDA_STATE_BUSY = __HAL_UART_STATE_BUSY,
82 HAL_IRDA_STATE_BUSY_TX = __HAL_UART_STATE_BUSY_TX,
83 HAL_IRDA_STATE_BUSY_RX = __HAL_UART_STATE_BUSY_RX,
84 HAL_IRDA_STATE_BUSY_TX_RX = __HAL_UART_STATE_BUSY_TX_RX,
85 HAL_IRDA_STATE_TIMEOUT = __HAL_UART_STATE_TIMEOUT,
86 HAL_IRDA_STATE_ERROR = __HAL_UART_STATE_ERROR,
87} HAL_IRDA_StateTypeDef;
88
89# if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
90typedef enum {
91 HAL_IRDA_TX_HALFCOMPLETE_CB_ID = __HAL_UART_TX_HALFCOMPLETE_CB_ID,
92 HAL_IRDA_TX_COMPLETE_CB_ID = __HAL_UART_TX_COMPLETE_CB_ID,
93 HAL_IRDA_RX_HALFCOMPLETE_CB_ID = __HAL_UART_RX_HALFCOMPLETE_CB_ID,
94 HAL_IRDA_RX_COMPLETE_CB_ID = __HAL_UART_RX_COMPLETE_CB_ID,
95 HAL_IRDA_ERROR_CB_ID = __HAL_UART_ERROR_CB_ID,
96 HAL_IRDA_ABORT_COMPLETE_CB_ID = __HAL_UART_ABORT_COMPLETE_CB_ID,
97 HAL_IRDA_ABORT_TRANSMIT_COMPLETE_CB_ID =
98 __HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID,
99 HAL_IRDA_ABORT_RECEIVE_COMPLETE_CB_ID =
100 __HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID,
101 HAL_IRDA_MSPINIT_CB_ID = __HAL_UART_MSPINIT_CB_ID,
102 HAL_IRDA_MSPDEINIT_CB_ID = __HAL_UART_MSPDEINIT_CB_ID
103} HAL_IRDA_CallbackIDTypeDef;
104# endif
105
106typedef __UART_TypeDef IRAD_TypeDef;
107typedef __UART_InitTypeDef IRDA_InitTypeDef;
108typedef struct __UART_HandleTypeDef IRDA_HandleTypeDef;
109typedef void (*pIRDA_CallbackTypeDef)(IRDA_HandleTypeDef *hirda);
110
111/*============================ GLOBAL VARIABLES ==============================*/
112/*============================ PROTOTYPES ====================================*/
113
114HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda);
115HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda);
116void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda);
117void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda);
118
119# if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
120HAL_StatusTypeDef HAL_IRDA_RegisterCallback(
121 IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef CallbackID,
122 pIRDA_CallbackTypeDef pCallback);
123HAL_StatusTypeDef HAL_IRDA_UnRegisterCallback(
124 IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef CallbackID);
125# endif
126
127HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda,
128 const uint8_t *pData, uint16_t Size,
129 uint32_t Timeout);
130HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData,
131 uint16_t Size, uint32_t Timeout);
132HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda,
133 const uint8_t *pData, uint16_t Size);
134HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData,
135 uint16_t Size);
136HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda,
137 const uint8_t *pData, uint16_t Size);
138HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda,
139 uint8_t *pData, uint16_t Size);
140HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda);
141HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda);
142HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda);
143HAL_StatusTypeDef HAL_IRDA_Abort(IRDA_HandleTypeDef *hirda);
144HAL_StatusTypeDef HAL_IRDA_AbortTransmit(IRDA_HandleTypeDef *hirda);
145HAL_StatusTypeDef HAL_IRDA_AbortReceive(IRDA_HandleTypeDef *hirda);
146HAL_StatusTypeDef HAL_IRDA_Abort_IT(IRDA_HandleTypeDef *hirda);
147HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT(IRDA_HandleTypeDef *hirda);
148HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT(IRDA_HandleTypeDef *hirda);
149
150void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda);
151void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda);
152void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda);
153void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
154void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
155void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda);
156void HAL_IRDA_AbortCpltCallback(IRDA_HandleTypeDef *hirda);
157void HAL_IRDA_AbortTransmitCpltCallback(IRDA_HandleTypeDef *hirda);
158void HAL_IRDA_AbortReceiveCpltCallback(IRDA_HandleTypeDef *hirda);
159
160HAL_IRDA_StateTypeDef HAL_IRDA_GetState(const IRDA_HandleTypeDef *hirda);
161uint32_t HAL_IRDA_GetError(const IRDA_HandleTypeDef *hirda);
162
163#endif
164
165#ifdef __cplusplus
166}
167#endif
168
169#endif /* __ST_HAL_IRDA_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_StatusTypeDef
Definition sthal_def.h:65
void HAL_IRDA_AbortReceiveCpltCallback(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:97
HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
Definition sthal_irda.c:327
uint32_t HAL_IRDA_GetError(const IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:410
void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:109
HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:124
HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_irda.c:299
HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:434
HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_irda.c:309
HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:418
HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:114
HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:386
void HAL_IRDA_AbortTransmitCpltCallback(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:91
void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:103
void HAL_IRDA_AbortCpltCallback(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:85
void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:293
HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:394
void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:79
HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size)
Definition sthal_irda.c:318
HAL_StatusTypeDef HAL_IRDA_AbortTransmit(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:362
void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:55
void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:73
void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:61
HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
Definition sthal_irda.c:345
HAL_StatusTypeDef HAL_IRDA_AbortReceive(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:370
HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size)
Definition sthal_irda.c:336
HAL_IRDA_StateTypeDef HAL_IRDA_GetState(const IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:402
HAL_StatusTypeDef HAL_IRDA_Abort(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:354
HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:426
HAL_StatusTypeDef HAL_IRDA_Abort_IT(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:378
void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda)
Definition sthal_irda.c:67
@ __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
Definition sthal_uart_base.h:80
Definition sthal_uart_base.h:39
Definition vsf_template_usart.h:661
struct @750 Size