1 /** 2 ****************************************************************************** 3 * @file stm32l4xx_hal_swpmi.h 4 * @author MCD Application Team 5 * @brief Header file of SWPMI HAL module. 6 ****************************************************************************** 7 * @attention 8 * 9 * <h2><center>© Copyright (c) 2017 STMicroelectronics. 10 * All rights reserved.</center></h2> 11 * 12 * This software component is licensed by ST under BSD 3-Clause license, 13 * the "License"; You may not use this file except in compliance with the 14 * License. You may obtain a copy of the License at: 15 * opensource.org/licenses/BSD-3-Clause 16 * 17 ****************************************************************************** 18 */ 19 20 /* Define to prevent recursive inclusion -------------------------------------*/ 21 #ifndef STM32L4xx_HAL_SWPMI_H 22 #define STM32L4xx_HAL_SWPMI_H 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 /* Includes ------------------------------------------------------------------*/ 29 #include "stm32l4xx_hal_def.h" 30 31 /** @addtogroup STM32L4xx_HAL_Driver 32 * @{ 33 */ 34 35 #if defined(SWPMI1) 36 37 /** @addtogroup SWPMI 38 * @{ 39 */ 40 41 /* Exported types ------------------------------------------------------------*/ 42 /** @defgroup SWPMI_Exported_Types SWPMI Exported Types 43 * @{ 44 */ 45 46 /** 47 * @brief SWPMI Init Structure definition 48 */ 49 typedef struct 50 { 51 uint32_t VoltageClass; /*!< Specifies the SWP Voltage Class. 52 This parameter can be a value of @ref SWPMI_Voltage_Class */ 53 54 uint32_t BitRate; /*!< Specifies the SWPMI Bitrate. 55 This parameter must be a number between 0 and 63U. 56 The Bitrate is computed using the following formula: 57 SWPMI_freq = SWPMI_clk / (((BitRate) + 1) * 4) 58 */ 59 60 uint32_t TxBufferingMode; /*!< Specifies the transmission buffering mode. 61 This parameter can be a value of @ref SWPMI_Tx_Buffering_Mode */ 62 63 uint32_t RxBufferingMode; /*!< Specifies the reception buffering mode. 64 This parameter can be a value of @ref SWPMI_Rx_Buffering_Mode */ 65 66 }SWPMI_InitTypeDef; 67 68 69 /** 70 * @brief HAL SWPMI State structures definition 71 */ 72 typedef enum 73 { 74 HAL_SWPMI_STATE_RESET = 0x00, /*!< Peripheral Reset state */ 75 HAL_SWPMI_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */ 76 HAL_SWPMI_STATE_BUSY = 0x02, /*!< an internal process is ongoing */ 77 HAL_SWPMI_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */ 78 HAL_SWPMI_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */ 79 HAL_SWPMI_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission and Reception process is ongoing */ 80 HAL_SWPMI_STATE_TIMEOUT = 0x03, /*!< Timeout state */ 81 HAL_SWPMI_STATE_ERROR = 0x04 /*!< Error */ 82 }HAL_SWPMI_StateTypeDef; 83 84 /** 85 * @brief SWPMI handle Structure definition 86 */ 87 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 88 typedef struct __SWPMI_HandleTypeDef 89 #else 90 typedef struct 91 #endif /* USE_HAL_SWPMI_REGISTER_CALLBACKS */ 92 { 93 SWPMI_TypeDef *Instance; /*!< SWPMI registers base address */ 94 95 SWPMI_InitTypeDef Init; /*!< SWPMI communication parameters */ 96 97 uint32_t *pTxBuffPtr; /*!< Pointer to SWPMI Tx transfer Buffer */ 98 99 uint32_t TxXferSize; /*!< SWPMI Tx Transfer size */ 100 101 uint32_t TxXferCount; /*!< SWPMI Tx Transfer Counter */ 102 103 uint32_t *pRxBuffPtr; /*!< Pointer to SWPMI Rx transfer Buffer */ 104 105 uint32_t RxXferSize; /*!< SWPMI Rx Transfer size */ 106 107 uint32_t RxXferCount; /*!< SWPMI Rx Transfer Counter */ 108 109 DMA_HandleTypeDef *hdmatx; /*!< SWPMI Tx DMA Handle parameters */ 110 111 DMA_HandleTypeDef *hdmarx; /*!< SWPMI Rx DMA Handle parameters */ 112 113 HAL_LockTypeDef Lock; /*!< SWPMI object */ 114 115 __IO HAL_SWPMI_StateTypeDef State; /*!< SWPMI communication state */ 116 117 __IO uint32_t ErrorCode; /*!< SWPMI Error code */ 118 119 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 120 void (*RxCpltCallback) (struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI receive complete callback */ 121 void (*RxHalfCpltCallback) (struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI receive half complete callback */ 122 void (*TxCpltCallback) (struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI transmit complete callback */ 123 void (*TxHalfCpltCallback) (struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI transmit half complete callback */ 124 void (*ErrorCallback) (struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI error callback */ 125 void (*MspInitCallback) (struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI MSP init callback */ 126 void (*MspDeInitCallback) (struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI MSP de-init callback */ 127 #endif 128 129 }SWPMI_HandleTypeDef; 130 131 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 132 /** 133 * @brief SWPMI callback ID enumeration definition 134 */ 135 typedef enum 136 { 137 HAL_SWPMI_RX_COMPLETE_CB_ID = 0x00U, /*!< SWPMI receive complete callback ID */ 138 HAL_SWPMI_RX_HALFCOMPLETE_CB_ID = 0x01U, /*!< SWPMI receive half complete callback ID */ 139 HAL_SWPMI_TX_COMPLETE_CB_ID = 0x02U, /*!< SWPMI transmit complete callback ID */ 140 HAL_SWPMI_TX_HALFCOMPLETE_CB_ID = 0x03U, /*!< SWPMI transmit half complete callback ID */ 141 HAL_SWPMI_ERROR_CB_ID = 0x04U, /*!< SWPMI error callback ID */ 142 HAL_SWPMI_MSPINIT_CB_ID = 0x05U, /*!< SWPMI MSP init callback ID */ 143 HAL_SWPMI_MSPDEINIT_CB_ID = 0x06U /*!< SWPMI MSP de-init callback ID */ 144 }HAL_SWPMI_CallbackIDTypeDef; 145 146 /** 147 * @brief SWPMI callback pointer definition 148 */ 149 typedef void (*pSWPMI_CallbackTypeDef)(SWPMI_HandleTypeDef *hswpmi); 150 #endif 151 152 /** 153 * @} 154 */ 155 156 /* Exported constants --------------------------------------------------------*/ 157 /** @defgroup SWPMI_Exported_Constants SWPMI Exported Constants 158 * @{ 159 */ 160 161 /** 162 * @defgroup SWPMI_Error_Code SWPMI Error Code Bitmap 163 * @{ 164 */ 165 #define HAL_SWPMI_ERROR_NONE ((uint32_t)0x00000000) /*!< No error */ 166 #define HAL_SWPMI_ERROR_CRC ((uint32_t)0x00000004) /*!< frame error */ 167 #define HAL_SWPMI_ERROR_OVR ((uint32_t)0x00000008) /*!< Overrun error */ 168 #define HAL_SWPMI_ERROR_UDR ((uint32_t)0x0000000C) /*!< Underrun error */ 169 #define HAL_SWPMI_ERROR_DMA ((uint32_t)0x00000010) /*!< DMA transfer error */ 170 #define HAL_SWPMI_ERROR_TIMEOUT ((uint32_t)0x00000020) /*!< Transfer timeout */ 171 #define HAL_SWPMI_ERROR_TXBEF_TIMEOUT ((uint32_t)0x00000040) /*!< End Tx buffer timeout */ 172 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 173 #define HAL_SWPMI_ERROR_INVALID_CALLBACK ((uint32_t)0x00000100) /*!< Invalid callback error */ 174 #endif 175 /** 176 * @} 177 */ 178 179 /** @defgroup SWPMI_Voltage_Class SWPMI Voltage Class 180 * @{ 181 */ 182 #define SWPMI_VOLTAGE_CLASS_C ((uint32_t)0x00000000) 183 #define SWPMI_VOLTAGE_CLASS_B SWPMI_OR_CLASS 184 /** 185 * @} 186 */ 187 188 /** @defgroup SWPMI_Tx_Buffering_Mode SWPMI Tx Buffering Mode 189 * @{ 190 */ 191 #define SWPMI_TX_NO_SOFTWAREBUFFER ((uint32_t)0x00000000) 192 #define SWPMI_TX_SINGLE_SOFTWAREBUFFER ((uint32_t)0x00000000) 193 #define SWPMI_TX_MULTI_SOFTWAREBUFFER SWPMI_CR_TXMODE 194 /** 195 * @} 196 */ 197 198 /** @defgroup SWPMI_Rx_Buffering_Mode SWPMI Rx Buffering Mode 199 * @{ 200 */ 201 #define SWPMI_RX_NO_SOFTWAREBUFFER ((uint32_t)0x00000000) 202 #define SWPMI_RX_SINGLE_SOFTWAREBUFFER ((uint32_t)0x00000000) 203 #define SWPMI_RX_MULTI_SOFTWAREBUFFER SWPMI_CR_RXMODE 204 /** 205 * @} 206 */ 207 208 /** @defgroup SWPMI_Flags SWPMI Status Flags 209 * Elements values convention: 0xXXXXXXXX 210 * - 0xXXXXXXXX : Flag mask in the ISR register 211 * @{ 212 */ 213 #define SWPMI_FLAG_RXBFF SWPMI_ISR_RXBFF 214 #define SWPMI_FLAG_TXBEF SWPMI_ISR_TXBEF 215 #define SWPMI_FLAG_RXBERF SWPMI_ISR_RXBERF 216 #define SWPMI_FLAG_RXOVRF SWPMI_ISR_RXOVRF 217 #define SWPMI_FLAG_TXUNRF SWPMI_ISR_TXUNRF 218 #define SWPMI_FLAG_RXNE SWPMI_ISR_RXNE 219 #define SWPMI_FLAG_TXE SWPMI_ISR_TXE 220 #define SWPMI_FLAG_TCF SWPMI_ISR_TCF 221 #define SWPMI_FLAG_SRF SWPMI_ISR_SRF 222 #define SWPMI_FLAG_SUSP SWPMI_ISR_SUSP 223 #define SWPMI_FLAG_DEACTF SWPMI_ISR_DEACTF 224 /** 225 * @} 226 */ 227 228 /** @defgroup SWPMI_Interrupt_definition SWPMI Interrupts Definition 229 * Elements values convention: 0xXXXX 230 * - 0xXXXX : Flag mask in the IER register 231 * @{ 232 */ 233 #define SWPMI_IT_SRIE SWPMI_IER_SRIE 234 #define SWPMI_IT_TCIE SWPMI_IER_TCIE 235 #define SWPMI_IT_TIE SWPMI_IER_TIE 236 #define SWPMI_IT_RIE SWPMI_IER_RIE 237 #define SWPMI_IT_TXUNRIE SWPMI_IER_TXUNRIE 238 #define SWPMI_IT_RXOVRIE SWPMI_IER_RXOVRIE 239 #define SWPMI_IT_RXBERIE SWPMI_IER_RXBERIE 240 #define SWPMI_IT_TXBEIE SWPMI_IER_TXBEIE 241 #define SWPMI_IT_RXBFIE SWPMI_IER_RXBFIE 242 /** 243 * @} 244 */ 245 246 /** 247 * @} 248 */ 249 250 /* Exported macros -----------------------------------------------------------*/ 251 /** @defgroup SWPMI_Exported_Macros SWPMI Exported Macros 252 * @{ 253 */ 254 255 /** @brief Reset SWPMI handle state. 256 * @param __HANDLE__ specifies the SWPMI Handle. 257 * @retval None 258 */ 259 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 260 #define __HAL_SWPMI_RESET_HANDLE_STATE(__HANDLE__) do{ \ 261 (__HANDLE__)->State = HAL_SWPMI_STATE_RESET; \ 262 (__HANDLE__)->MspInitCallback = NULL; \ 263 (__HANDLE__)->MspDeInitCallback = NULL; \ 264 } while(0) 265 #else 266 #define __HAL_SWPMI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SWPMI_STATE_RESET) 267 #endif 268 269 /** 270 * @brief Enable the SWPMI peripheral. 271 * @param __HANDLE__ SWPMI handle 272 * @retval None 273 */ 274 #define __HAL_SWPMI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPACT) 275 276 /** 277 * @brief Disable the SWPMI peripheral. 278 * @param __HANDLE__ SWPMI handle 279 * @retval None 280 */ 281 #define __HAL_SWPMI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPACT) 282 283 /** @brief Check whether the specified SWPMI flag is set or not. 284 * @param __HANDLE__ specifies the SWPMI Handle. 285 * @param __FLAG__ specifies the flag to check. 286 * This parameter can be one of the following values: 287 * @arg SWPMI_FLAG_RXBFF Receive buffer full flag. 288 * @arg SWPMI_FLAG_TXBEF Transmit buffer empty flag. 289 * @arg SWPMI_FLAG_RXBERF Receive CRC error flag. 290 * @arg SWPMI_FLAG_RXOVRF Receive overrun error flag. 291 * @arg SWPMI_FLAG_TXUNRF Transmit underrun error flag. 292 * @arg SWPMI_FLAG_RXNE Receive data register not empty. 293 * @arg SWPMI_FLAG_TXE Transmit data register empty. 294 * @arg SWPMI_FLAG_TCF Transfer complete flag. 295 * @arg SWPMI_FLAG_SRF Slave resume flag. 296 * @arg SWPMI_FLAG_SUSP SUSPEND flag. 297 * @arg SWPMI_FLAG_DEACTF DEACTIVATED flag. 298 * @retval The new state of __FLAG__ (TRUE or FALSE). 299 */ 300 #define __HAL_SWPMI_GET_FLAG(__HANDLE__, __FLAG__) (READ_BIT((__HANDLE__)->Instance->ISR, (__FLAG__)) == (__FLAG__)) 301 302 /** @brief Clear the specified SWPMI ISR flag. 303 * @param __HANDLE__ specifies the SWPMI Handle. 304 * @param __FLAG__ specifies the flag to clear. 305 * This parameter can be one of the following values: 306 * @arg SWPMI_FLAG_RXBFF Receive buffer full flag. 307 * @arg SWPMI_FLAG_TXBEF Transmit buffer empty flag. 308 * @arg SWPMI_FLAG_RXBERF Receive CRC error flag. 309 * @arg SWPMI_FLAG_RXOVRF Receive overrun error flag. 310 * @arg SWPMI_FLAG_TXUNRF Transmit underrun error flag. 311 * @arg SWPMI_FLAG_TCF Transfer complete flag. 312 * @arg SWPMI_FLAG_SRF Slave resume flag. 313 * @retval None 314 */ 315 #define __HAL_SWPMI_CLEAR_FLAG(__HANDLE__, __FLAG__) WRITE_REG((__HANDLE__)->Instance->ICR, (__FLAG__)) 316 317 /** @brief Enable the specified SWPMI interrupt. 318 * @param __HANDLE__ specifies the SWPMI Handle. 319 * @param __INTERRUPT__ specifies the SWPMI interrupt source to enable. 320 * This parameter can be one of the following values: 321 * @arg SWPMI_IT_SRIE Slave resume interrupt. 322 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 323 * @arg SWPMI_IT_TIE Transmit interrupt. 324 * @arg SWPMI_IT_RIE Receive interrupt. 325 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 326 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 327 * @arg SWPMI_IT_RXBEIE Receive CRC error interrupt. 328 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 329 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 330 * @retval None 331 */ 332 #define __HAL_SWPMI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->IER, (__INTERRUPT__)) 333 334 /** @brief Disable the specified SWPMI interrupt. 335 * @param __HANDLE__ specifies the SWPMI Handle. 336 * @param __INTERRUPT__ specifies the SWPMI interrupt source to disable. 337 * This parameter can be one of the following values: 338 * @arg SWPMI_IT_SRIE Slave resume interrupt. 339 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 340 * @arg SWPMI_IT_TIE Transmit interrupt. 341 * @arg SWPMI_IT_RIE Receive interrupt. 342 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 343 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 344 * @arg SWPMI_IT_RXBEIE Receive CRC error interrupt. 345 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 346 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 347 * @retval None 348 */ 349 #define __HAL_SWPMI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->IER, (__INTERRUPT__)) 350 351 /** @brief Check whether the specified SWPMI interrupt has occurred or not. 352 * @param __HANDLE__ specifies the SWPMI Handle. 353 * @param __IT__ specifies the SWPMI interrupt to check. 354 * This parameter can be one of the following values: 355 * @arg SWPMI_IT_SRIE Slave resume interrupt. 356 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 357 * @arg SWPMI_IT_TIE Transmit interrupt. 358 * @arg SWPMI_IT_RIE Receive interrupt. 359 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 360 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 361 * @arg SWPMI_IT_RXBERIE Receive CRC error interrupt. 362 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 363 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 364 * @retval The new state of __IT__ (TRUE or FALSE). 365 */ 366 #define __HAL_SWPMI_GET_IT(__HANDLE__, __IT__) (READ_BIT((__HANDLE__)->Instance->ISR,(__IT__)) == (__IT__)) 367 368 /** @brief Check whether the specified SWPMI interrupt source is enabled or not. 369 * @param __HANDLE__ specifies the SWPMI Handle. 370 * @param __IT__ specifies the SWPMI interrupt source to check. 371 * This parameter can be one of the following values: 372 * @arg SWPMI_IT_SRIE Slave resume interrupt. 373 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 374 * @arg SWPMI_IT_TIE Transmit interrupt. 375 * @arg SWPMI_IT_RIE Receive interrupt. 376 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 377 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 378 * @arg SWPMI_IT_RXBERIE Receive CRC error interrupt. 379 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 380 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 381 * @retval The new state of __IT__ (TRUE or FALSE). 382 */ 383 #define __HAL_SWPMI_GET_IT_SOURCE(__HANDLE__, __IT__) ((READ_BIT((__HANDLE__)->Instance->IER, (__IT__)) == (__IT__)) ? SET : RESET) 384 385 /** 386 * @} 387 */ 388 389 /* Exported functions --------------------------------------------------------*/ 390 /** @defgroup SWPMI_Exported_Functions SWPMI Exported Functions 391 * @{ 392 */ 393 /* Initialization/de-initialization functions ********************************/ 394 HAL_StatusTypeDef HAL_SWPMI_Init(SWPMI_HandleTypeDef *hswpmi); 395 HAL_StatusTypeDef HAL_SWPMI_DeInit(SWPMI_HandleTypeDef *hswpmi); 396 void HAL_SWPMI_MspInit(SWPMI_HandleTypeDef *hswpmi); 397 void HAL_SWPMI_MspDeInit(SWPMI_HandleTypeDef *hswpmi); 398 399 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 400 /* SWPMI callbacks register/unregister functions ********************************/ 401 HAL_StatusTypeDef HAL_SWPMI_RegisterCallback(SWPMI_HandleTypeDef *hswpmi, 402 HAL_SWPMI_CallbackIDTypeDef CallbackID, 403 pSWPMI_CallbackTypeDef pCallback); 404 HAL_StatusTypeDef HAL_SWPMI_UnRegisterCallback(SWPMI_HandleTypeDef *hswpmi, 405 HAL_SWPMI_CallbackIDTypeDef CallbackID); 406 #endif 407 408 /* IO operation functions *****************************************************/ 409 HAL_StatusTypeDef HAL_SWPMI_Transmit(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout); 410 HAL_StatusTypeDef HAL_SWPMI_Receive(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout); 411 HAL_StatusTypeDef HAL_SWPMI_Transmit_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 412 HAL_StatusTypeDef HAL_SWPMI_Receive_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 413 HAL_StatusTypeDef HAL_SWPMI_Transmit_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 414 HAL_StatusTypeDef HAL_SWPMI_Receive_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 415 HAL_StatusTypeDef HAL_SWPMI_DMAStop(SWPMI_HandleTypeDef *hswpmi); 416 HAL_StatusTypeDef HAL_SWPMI_EnableLoopback(SWPMI_HandleTypeDef *hswpmi); 417 HAL_StatusTypeDef HAL_SWPMI_DisableLoopback(SWPMI_HandleTypeDef *hswpmi); 418 void HAL_SWPMI_IRQHandler(SWPMI_HandleTypeDef *hswpmi); 419 void HAL_SWPMI_TxCpltCallback(SWPMI_HandleTypeDef *hswpmi); 420 void HAL_SWPMI_TxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi); 421 void HAL_SWPMI_RxCpltCallback(SWPMI_HandleTypeDef *hswpmi); 422 void HAL_SWPMI_RxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi); 423 void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi); 424 425 /* Peripheral Control and State functions ************************************/ 426 HAL_SWPMI_StateTypeDef HAL_SWPMI_GetState(SWPMI_HandleTypeDef *hswpmi); 427 uint32_t HAL_SWPMI_GetError(SWPMI_HandleTypeDef *hswpmi); 428 429 /** 430 * @} 431 */ 432 433 /* Private types -------------------------------------------------------------*/ 434 /** @defgroup SWPMI_Private_Types SWPMI Private Types 435 * @{ 436 */ 437 438 /** 439 * @} 440 */ 441 442 /* Private variables ---------------------------------------------------------*/ 443 /** @defgroup SWPMI_Private_Variables SWPMI Private Variables 444 * @{ 445 */ 446 447 /** 448 * @} 449 */ 450 451 /* Private constants ---------------------------------------------------------*/ 452 /** @defgroup SWPMI_Private_Constants SWPMI Private Constants 453 * @{ 454 */ 455 456 /** 457 * @} 458 */ 459 460 /* Private macros ------------------------------------------------------------*/ 461 /** @defgroup SWPMI_Private_Macros SWPMI Private Macros 462 * @{ 463 */ 464 465 466 #define IS_SWPMI_VOLTAGE_CLASS(__CLASS__) (((__CLASS__) == SWPMI_VOLTAGE_CLASS_C) || \ 467 ((__CLASS__) == SWPMI_VOLTAGE_CLASS_B)) 468 469 #define IS_SWPMI_BITRATE_VALUE(__VALUE__) (((__VALUE__) <= 63U)) 470 471 472 #define IS_SWPMI_TX_BUFFERING_MODE(__MODE__) (((__MODE__) == SWPMI_TX_NO_SOFTWAREBUFFER) || \ 473 ((__MODE__) == SWPMI_TX_MULTI_SOFTWAREBUFFER)) 474 475 476 #define IS_SWPMI_RX_BUFFERING_MODE(__MODE__) (((__MODE__) == SWPMI_RX_NO_SOFTWAREBUFFER) || \ 477 ((__MODE__) == SWPMI_RX_MULTI_SOFTWAREBUFFER)) 478 479 /** 480 * @} 481 */ 482 483 /** 484 * @} 485 */ 486 487 #endif /* SWPMI1 */ 488 489 /** 490 * @} 491 */ 492 493 #ifdef __cplusplus 494 } 495 #endif 496 497 #endif /* STM32L4xx_HAL_SWPMI_H */ 498 499 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 500