STM32L443xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_hal_swpmi.h 00004 * @author MCD Application Team 00005 * @brief Header file of SWPMI HAL module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * Copyright (c) 2017 STMicroelectronics. 00010 * All rights reserved. 00011 * 00012 * This software is licensed under terms that can be found in the LICENSE file 00013 * in the root directory of this software component. 00014 * If no LICENSE file comes with this software, it is provided AS-IS. 00015 * 00016 ****************************************************************************** 00017 */ 00018 00019 /* Define to prevent recursive inclusion -------------------------------------*/ 00020 #ifndef STM32L4xx_HAL_SWPMI_H 00021 #define STM32L4xx_HAL_SWPMI_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32l4xx_hal_def.h" 00029 00030 /** @addtogroup STM32L4xx_HAL_Driver 00031 * @{ 00032 */ 00033 00034 #if defined(SWPMI1) 00035 00036 /** @addtogroup SWPMI 00037 * @{ 00038 */ 00039 00040 /* Exported types ------------------------------------------------------------*/ 00041 /** @defgroup SWPMI_Exported_Types SWPMI Exported Types 00042 * @{ 00043 */ 00044 00045 /** 00046 * @brief SWPMI Init Structure definition 00047 */ 00048 typedef struct 00049 { 00050 uint32_t VoltageClass; /*!< Specifies the SWP Voltage Class. 00051 This parameter can be a value of @ref SWPMI_Voltage_Class */ 00052 00053 uint32_t BitRate; /*!< Specifies the SWPMI Bitrate. 00054 This parameter must be a number between 0 and 63U. 00055 The Bitrate is computed using the following formula: 00056 SWPMI_freq = SWPMI_clk / (((BitRate) + 1) * 4) 00057 */ 00058 00059 uint32_t TxBufferingMode; /*!< Specifies the transmission buffering mode. 00060 This parameter can be a value of @ref SWPMI_Tx_Buffering_Mode */ 00061 00062 uint32_t RxBufferingMode; /*!< Specifies the reception buffering mode. 00063 This parameter can be a value of @ref SWPMI_Rx_Buffering_Mode */ 00064 00065 } SWPMI_InitTypeDef; 00066 00067 00068 /** 00069 * @brief HAL SWPMI State structures definition 00070 */ 00071 typedef enum 00072 { 00073 HAL_SWPMI_STATE_RESET = 0x00, /*!< Peripheral Reset state */ 00074 HAL_SWPMI_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */ 00075 HAL_SWPMI_STATE_BUSY = 0x02, /*!< an internal process is ongoing */ 00076 HAL_SWPMI_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */ 00077 HAL_SWPMI_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */ 00078 HAL_SWPMI_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission and Reception process is ongoing */ 00079 HAL_SWPMI_STATE_TIMEOUT = 0x03, /*!< Timeout state */ 00080 HAL_SWPMI_STATE_ERROR = 0x04 /*!< Error */ 00081 } HAL_SWPMI_StateTypeDef; 00082 00083 /** 00084 * @brief SWPMI handle Structure definition 00085 */ 00086 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 00087 typedef struct __SWPMI_HandleTypeDef 00088 #else 00089 typedef struct 00090 #endif /* USE_HAL_SWPMI_REGISTER_CALLBACKS */ 00091 { 00092 SWPMI_TypeDef *Instance; /*!< SWPMI registers base address */ 00093 00094 SWPMI_InitTypeDef Init; /*!< SWPMI communication parameters */ 00095 00096 uint32_t *pTxBuffPtr; /*!< Pointer to SWPMI Tx transfer Buffer */ 00097 00098 uint32_t TxXferSize; /*!< SWPMI Tx Transfer size */ 00099 00100 uint32_t TxXferCount; /*!< SWPMI Tx Transfer Counter */ 00101 00102 uint32_t *pRxBuffPtr; /*!< Pointer to SWPMI Rx transfer Buffer */ 00103 00104 uint32_t RxXferSize; /*!< SWPMI Rx Transfer size */ 00105 00106 uint32_t RxXferCount; /*!< SWPMI Rx Transfer Counter */ 00107 00108 DMA_HandleTypeDef *hdmatx; /*!< SWPMI Tx DMA Handle parameters */ 00109 00110 DMA_HandleTypeDef *hdmarx; /*!< SWPMI Rx DMA Handle parameters */ 00111 00112 HAL_LockTypeDef Lock; /*!< SWPMI object */ 00113 00114 __IO HAL_SWPMI_StateTypeDef State; /*!< SWPMI communication state */ 00115 00116 __IO uint32_t ErrorCode; /*!< SWPMI Error code */ 00117 00118 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 00119 void (*RxCpltCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI receive complete callback */ 00120 void (*RxHalfCpltCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI receive half complete callback */ 00121 void (*TxCpltCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI transmit complete callback */ 00122 void (*TxHalfCpltCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI transmit half complete callback */ 00123 void (*ErrorCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI error callback */ 00124 void (*MspInitCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI MSP init callback */ 00125 void (*MspDeInitCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI MSP de-init callback */ 00126 #endif 00127 00128 } SWPMI_HandleTypeDef; 00129 00130 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 00131 /** 00132 * @brief SWPMI callback ID enumeration definition 00133 */ 00134 typedef enum 00135 { 00136 HAL_SWPMI_RX_COMPLETE_CB_ID = 0x00U, /*!< SWPMI receive complete callback ID */ 00137 HAL_SWPMI_RX_HALFCOMPLETE_CB_ID = 0x01U, /*!< SWPMI receive half complete callback ID */ 00138 HAL_SWPMI_TX_COMPLETE_CB_ID = 0x02U, /*!< SWPMI transmit complete callback ID */ 00139 HAL_SWPMI_TX_HALFCOMPLETE_CB_ID = 0x03U, /*!< SWPMI transmit half complete callback ID */ 00140 HAL_SWPMI_ERROR_CB_ID = 0x04U, /*!< SWPMI error callback ID */ 00141 HAL_SWPMI_MSPINIT_CB_ID = 0x05U, /*!< SWPMI MSP init callback ID */ 00142 HAL_SWPMI_MSPDEINIT_CB_ID = 0x06U /*!< SWPMI MSP de-init callback ID */ 00143 } HAL_SWPMI_CallbackIDTypeDef; 00144 00145 /** 00146 * @brief SWPMI callback pointer definition 00147 */ 00148 typedef void (*pSWPMI_CallbackTypeDef)(SWPMI_HandleTypeDef *hswpmi); 00149 #endif 00150 00151 /** 00152 * @} 00153 */ 00154 00155 /* Exported constants --------------------------------------------------------*/ 00156 /** @defgroup SWPMI_Exported_Constants SWPMI Exported Constants 00157 * @{ 00158 */ 00159 00160 /** 00161 * @defgroup SWPMI_Error_Code SWPMI Error Code Bitmap 00162 * @{ 00163 */ 00164 #define HAL_SWPMI_ERROR_NONE ((uint32_t)0x00000000) /*!< No error */ 00165 #define HAL_SWPMI_ERROR_CRC ((uint32_t)0x00000004) /*!< frame error */ 00166 #define HAL_SWPMI_ERROR_OVR ((uint32_t)0x00000008) /*!< Overrun error */ 00167 #define HAL_SWPMI_ERROR_UDR ((uint32_t)0x0000000C) /*!< Underrun error */ 00168 #define HAL_SWPMI_ERROR_DMA ((uint32_t)0x00000010) /*!< DMA transfer error */ 00169 #define HAL_SWPMI_ERROR_TIMEOUT ((uint32_t)0x00000020) /*!< Transfer timeout */ 00170 #define HAL_SWPMI_ERROR_TXBEF_TIMEOUT ((uint32_t)0x00000040) /*!< End Tx buffer timeout */ 00171 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 00172 #define HAL_SWPMI_ERROR_INVALID_CALLBACK ((uint32_t)0x00000100) /*!< Invalid callback error */ 00173 #endif 00174 /** 00175 * @} 00176 */ 00177 00178 /** @defgroup SWPMI_Voltage_Class SWPMI Voltage Class 00179 * @{ 00180 */ 00181 #define SWPMI_VOLTAGE_CLASS_C ((uint32_t)0x00000000) 00182 #define SWPMI_VOLTAGE_CLASS_B SWPMI_OR_CLASS 00183 /** 00184 * @} 00185 */ 00186 00187 /** @defgroup SWPMI_Tx_Buffering_Mode SWPMI Tx Buffering Mode 00188 * @{ 00189 */ 00190 #define SWPMI_TX_NO_SOFTWAREBUFFER ((uint32_t)0x00000000) 00191 #define SWPMI_TX_SINGLE_SOFTWAREBUFFER ((uint32_t)0x00000000) 00192 #define SWPMI_TX_MULTI_SOFTWAREBUFFER SWPMI_CR_TXMODE 00193 /** 00194 * @} 00195 */ 00196 00197 /** @defgroup SWPMI_Rx_Buffering_Mode SWPMI Rx Buffering Mode 00198 * @{ 00199 */ 00200 #define SWPMI_RX_NO_SOFTWAREBUFFER ((uint32_t)0x00000000) 00201 #define SWPMI_RX_SINGLE_SOFTWAREBUFFER ((uint32_t)0x00000000) 00202 #define SWPMI_RX_MULTI_SOFTWAREBUFFER SWPMI_CR_RXMODE 00203 /** 00204 * @} 00205 */ 00206 00207 /** @defgroup SWPMI_Flags SWPMI Status Flags 00208 * Elements values convention: 0xXXXXXXXX 00209 * - 0xXXXXXXXX : Flag mask in the ISR register 00210 * @{ 00211 */ 00212 #define SWPMI_FLAG_RXBFF SWPMI_ISR_RXBFF 00213 #define SWPMI_FLAG_TXBEF SWPMI_ISR_TXBEF 00214 #define SWPMI_FLAG_RXBERF SWPMI_ISR_RXBERF 00215 #define SWPMI_FLAG_RXOVRF SWPMI_ISR_RXOVRF 00216 #define SWPMI_FLAG_TXUNRF SWPMI_ISR_TXUNRF 00217 #define SWPMI_FLAG_RXNE SWPMI_ISR_RXNE 00218 #define SWPMI_FLAG_TXE SWPMI_ISR_TXE 00219 #define SWPMI_FLAG_TCF SWPMI_ISR_TCF 00220 #define SWPMI_FLAG_SRF SWPMI_ISR_SRF 00221 #define SWPMI_FLAG_SUSP SWPMI_ISR_SUSP 00222 #define SWPMI_FLAG_DEACTF SWPMI_ISR_DEACTF 00223 /** 00224 * @} 00225 */ 00226 00227 /** @defgroup SWPMI_Interrupt_definition SWPMI Interrupts Definition 00228 * Elements values convention: 0xXXXX 00229 * - 0xXXXX : Flag mask in the IER register 00230 * @{ 00231 */ 00232 #define SWPMI_IT_SRIE SWPMI_IER_SRIE 00233 #define SWPMI_IT_TCIE SWPMI_IER_TCIE 00234 #define SWPMI_IT_TIE SWPMI_IER_TIE 00235 #define SWPMI_IT_RIE SWPMI_IER_RIE 00236 #define SWPMI_IT_TXUNRIE SWPMI_IER_TXUNRIE 00237 #define SWPMI_IT_RXOVRIE SWPMI_IER_RXOVRIE 00238 #define SWPMI_IT_RXBERIE SWPMI_IER_RXBERIE 00239 #define SWPMI_IT_TXBEIE SWPMI_IER_TXBEIE 00240 #define SWPMI_IT_RXBFIE SWPMI_IER_RXBFIE 00241 /** 00242 * @} 00243 */ 00244 00245 /** 00246 * @} 00247 */ 00248 00249 /* Exported macros -----------------------------------------------------------*/ 00250 /** @defgroup SWPMI_Exported_Macros SWPMI Exported Macros 00251 * @{ 00252 */ 00253 00254 /** @brief Reset SWPMI handle state. 00255 * @param __HANDLE__ specifies the SWPMI Handle. 00256 * @retval None 00257 */ 00258 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 00259 #define __HAL_SWPMI_RESET_HANDLE_STATE(__HANDLE__) do{ \ 00260 (__HANDLE__)->State = HAL_SWPMI_STATE_RESET; \ 00261 (__HANDLE__)->MspInitCallback = NULL; \ 00262 (__HANDLE__)->MspDeInitCallback = NULL; \ 00263 } while(0) 00264 #else 00265 #define __HAL_SWPMI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SWPMI_STATE_RESET) 00266 #endif 00267 00268 /** 00269 * @brief Enable the SWPMI peripheral. 00270 * @param __HANDLE__ SWPMI handle 00271 * @retval None 00272 */ 00273 #define __HAL_SWPMI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPACT) 00274 00275 /** 00276 * @brief Disable the SWPMI peripheral. 00277 * @param __HANDLE__ SWPMI handle 00278 * @retval None 00279 */ 00280 #define __HAL_SWPMI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPACT) 00281 00282 /** @brief Check whether the specified SWPMI flag is set or not. 00283 * @param __HANDLE__ specifies the SWPMI Handle. 00284 * @param __FLAG__ specifies the flag to check. 00285 * This parameter can be one of the following values: 00286 * @arg SWPMI_FLAG_RXBFF Receive buffer full flag. 00287 * @arg SWPMI_FLAG_TXBEF Transmit buffer empty flag. 00288 * @arg SWPMI_FLAG_RXBERF Receive CRC error flag. 00289 * @arg SWPMI_FLAG_RXOVRF Receive overrun error flag. 00290 * @arg SWPMI_FLAG_TXUNRF Transmit underrun error flag. 00291 * @arg SWPMI_FLAG_RXNE Receive data register not empty. 00292 * @arg SWPMI_FLAG_TXE Transmit data register empty. 00293 * @arg SWPMI_FLAG_TCF Transfer complete flag. 00294 * @arg SWPMI_FLAG_SRF Slave resume flag. 00295 * @arg SWPMI_FLAG_SUSP SUSPEND flag. 00296 * @arg SWPMI_FLAG_DEACTF DEACTIVATED flag. 00297 * @retval The new state of __FLAG__ (TRUE or FALSE). 00298 */ 00299 #define __HAL_SWPMI_GET_FLAG(__HANDLE__, __FLAG__) (READ_BIT((__HANDLE__)->Instance->ISR, (__FLAG__)) == (__FLAG__)) 00300 00301 /** @brief Clear the specified SWPMI ISR flag. 00302 * @param __HANDLE__ specifies the SWPMI Handle. 00303 * @param __FLAG__ specifies the flag to clear. 00304 * This parameter can be one of the following values: 00305 * @arg SWPMI_FLAG_RXBFF Receive buffer full flag. 00306 * @arg SWPMI_FLAG_TXBEF Transmit buffer empty flag. 00307 * @arg SWPMI_FLAG_RXBERF Receive CRC error flag. 00308 * @arg SWPMI_FLAG_RXOVRF Receive overrun error flag. 00309 * @arg SWPMI_FLAG_TXUNRF Transmit underrun error flag. 00310 * @arg SWPMI_FLAG_TCF Transfer complete flag. 00311 * @arg SWPMI_FLAG_SRF Slave resume flag. 00312 * @retval None 00313 */ 00314 #define __HAL_SWPMI_CLEAR_FLAG(__HANDLE__, __FLAG__) WRITE_REG((__HANDLE__)->Instance->ICR, (__FLAG__)) 00315 00316 /** @brief Enable the specified SWPMI interrupt. 00317 * @param __HANDLE__ specifies the SWPMI Handle. 00318 * @param __INTERRUPT__ specifies the SWPMI interrupt source to enable. 00319 * This parameter can be one of the following values: 00320 * @arg SWPMI_IT_SRIE Slave resume interrupt. 00321 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 00322 * @arg SWPMI_IT_TIE Transmit interrupt. 00323 * @arg SWPMI_IT_RIE Receive interrupt. 00324 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 00325 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 00326 * @arg SWPMI_IT_RXBEIE Receive CRC error interrupt. 00327 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 00328 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 00329 * @retval None 00330 */ 00331 #define __HAL_SWPMI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->IER, (__INTERRUPT__)) 00332 00333 /** @brief Disable the specified SWPMI interrupt. 00334 * @param __HANDLE__ specifies the SWPMI Handle. 00335 * @param __INTERRUPT__ specifies the SWPMI interrupt source to disable. 00336 * This parameter can be one of the following values: 00337 * @arg SWPMI_IT_SRIE Slave resume interrupt. 00338 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 00339 * @arg SWPMI_IT_TIE Transmit interrupt. 00340 * @arg SWPMI_IT_RIE Receive interrupt. 00341 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 00342 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 00343 * @arg SWPMI_IT_RXBEIE Receive CRC error interrupt. 00344 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 00345 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 00346 * @retval None 00347 */ 00348 #define __HAL_SWPMI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->IER, (__INTERRUPT__)) 00349 00350 /** @brief Check whether the specified SWPMI interrupt has occurred or not. 00351 * @param __HANDLE__ specifies the SWPMI Handle. 00352 * @param __IT__ specifies the SWPMI interrupt to check. 00353 * This parameter can be one of the following values: 00354 * @arg SWPMI_IT_SRIE Slave resume interrupt. 00355 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 00356 * @arg SWPMI_IT_TIE Transmit interrupt. 00357 * @arg SWPMI_IT_RIE Receive interrupt. 00358 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 00359 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 00360 * @arg SWPMI_IT_RXBERIE Receive CRC error interrupt. 00361 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 00362 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 00363 * @retval The new state of __IT__ (TRUE or FALSE). 00364 */ 00365 #define __HAL_SWPMI_GET_IT(__HANDLE__, __IT__) (READ_BIT((__HANDLE__)->Instance->ISR,(__IT__)) == (__IT__)) 00366 00367 /** @brief Check whether the specified SWPMI interrupt source is enabled or not. 00368 * @param __HANDLE__ specifies the SWPMI Handle. 00369 * @param __IT__ specifies the SWPMI interrupt source to check. 00370 * This parameter can be one of the following values: 00371 * @arg SWPMI_IT_SRIE Slave resume interrupt. 00372 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 00373 * @arg SWPMI_IT_TIE Transmit interrupt. 00374 * @arg SWPMI_IT_RIE Receive interrupt. 00375 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 00376 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 00377 * @arg SWPMI_IT_RXBERIE Receive CRC error interrupt. 00378 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 00379 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 00380 * @retval The new state of __IT__ (TRUE or FALSE). 00381 */ 00382 #define __HAL_SWPMI_GET_IT_SOURCE(__HANDLE__, __IT__) ((READ_BIT((__HANDLE__)->Instance->IER, (__IT__)) == (__IT__)) ? SET : RESET) 00383 00384 /** 00385 * @} 00386 */ 00387 00388 /* Exported functions --------------------------------------------------------*/ 00389 /** @defgroup SWPMI_Exported_Functions SWPMI Exported Functions 00390 * @{ 00391 */ 00392 /* Initialization/de-initialization functions ********************************/ 00393 HAL_StatusTypeDef HAL_SWPMI_Init(SWPMI_HandleTypeDef *hswpmi); 00394 HAL_StatusTypeDef HAL_SWPMI_DeInit(SWPMI_HandleTypeDef *hswpmi); 00395 void HAL_SWPMI_MspInit(SWPMI_HandleTypeDef *hswpmi); 00396 void HAL_SWPMI_MspDeInit(SWPMI_HandleTypeDef *hswpmi); 00397 00398 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 00399 /* SWPMI callbacks register/unregister functions ********************************/ 00400 HAL_StatusTypeDef HAL_SWPMI_RegisterCallback(SWPMI_HandleTypeDef *hswpmi, 00401 HAL_SWPMI_CallbackIDTypeDef CallbackID, 00402 pSWPMI_CallbackTypeDef pCallback); 00403 HAL_StatusTypeDef HAL_SWPMI_UnRegisterCallback(SWPMI_HandleTypeDef *hswpmi, 00404 HAL_SWPMI_CallbackIDTypeDef CallbackID); 00405 #endif 00406 00407 /* IO operation functions *****************************************************/ 00408 HAL_StatusTypeDef HAL_SWPMI_Transmit(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout); 00409 HAL_StatusTypeDef HAL_SWPMI_Receive(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout); 00410 HAL_StatusTypeDef HAL_SWPMI_Transmit_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 00411 HAL_StatusTypeDef HAL_SWPMI_Receive_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 00412 HAL_StatusTypeDef HAL_SWPMI_Transmit_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 00413 HAL_StatusTypeDef HAL_SWPMI_Receive_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 00414 HAL_StatusTypeDef HAL_SWPMI_DMAStop(SWPMI_HandleTypeDef *hswpmi); 00415 HAL_StatusTypeDef HAL_SWPMI_EnableLoopback(SWPMI_HandleTypeDef *hswpmi); 00416 HAL_StatusTypeDef HAL_SWPMI_DisableLoopback(SWPMI_HandleTypeDef *hswpmi); 00417 void HAL_SWPMI_IRQHandler(SWPMI_HandleTypeDef *hswpmi); 00418 void HAL_SWPMI_TxCpltCallback(SWPMI_HandleTypeDef *hswpmi); 00419 void HAL_SWPMI_TxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi); 00420 void HAL_SWPMI_RxCpltCallback(SWPMI_HandleTypeDef *hswpmi); 00421 void HAL_SWPMI_RxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi); 00422 void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi); 00423 00424 /* Peripheral Control and State functions ************************************/ 00425 HAL_SWPMI_StateTypeDef HAL_SWPMI_GetState(SWPMI_HandleTypeDef *hswpmi); 00426 uint32_t HAL_SWPMI_GetError(SWPMI_HandleTypeDef *hswpmi); 00427 00428 /** 00429 * @} 00430 */ 00431 00432 /* Private types -------------------------------------------------------------*/ 00433 /** @defgroup SWPMI_Private_Types SWPMI Private Types 00434 * @{ 00435 */ 00436 00437 /** 00438 * @} 00439 */ 00440 00441 /* Private variables ---------------------------------------------------------*/ 00442 /** @defgroup SWPMI_Private_Variables SWPMI Private Variables 00443 * @{ 00444 */ 00445 00446 /** 00447 * @} 00448 */ 00449 00450 /* Private constants ---------------------------------------------------------*/ 00451 /** @defgroup SWPMI_Private_Constants SWPMI Private Constants 00452 * @{ 00453 */ 00454 00455 /** 00456 * @} 00457 */ 00458 00459 /* Private macros ------------------------------------------------------------*/ 00460 /** @defgroup SWPMI_Private_Macros SWPMI Private Macros 00461 * @{ 00462 */ 00463 00464 00465 #define IS_SWPMI_VOLTAGE_CLASS(__CLASS__) (((__CLASS__) == SWPMI_VOLTAGE_CLASS_C) || \ 00466 ((__CLASS__) == SWPMI_VOLTAGE_CLASS_B)) 00467 00468 #define IS_SWPMI_BITRATE_VALUE(__VALUE__) (((__VALUE__) <= 63U)) 00469 00470 00471 #define IS_SWPMI_TX_BUFFERING_MODE(__MODE__) (((__MODE__) == SWPMI_TX_NO_SOFTWAREBUFFER) || \ 00472 ((__MODE__) == SWPMI_TX_MULTI_SOFTWAREBUFFER)) 00473 00474 00475 #define IS_SWPMI_RX_BUFFERING_MODE(__MODE__) (((__MODE__) == SWPMI_RX_NO_SOFTWAREBUFFER) || \ 00476 ((__MODE__) == SWPMI_RX_MULTI_SOFTWAREBUFFER)) 00477 00478 /** 00479 * @} 00480 */ 00481 00482 /** 00483 * @} 00484 */ 00485 00486 #endif /* SWPMI1 */ 00487 00488 /** 00489 * @} 00490 */ 00491 00492 #ifdef __cplusplus 00493 } 00494 #endif 00495 00496 #endif /* STM32L4xx_HAL_SWPMI_H */