![]() |
|
|||
File indexing completed on 2025-05-11 08:23:36
0001 /** 0002 ****************************************************************************** 0003 * @file stm32h7xx_hal_swpmi.h 0004 * @author MCD Application Team 0005 * @brief Header file of SWPMI HAL module. 0006 ****************************************************************************** 0007 * @attention 0008 * 0009 * Copyright (c) 2017 STMicroelectronics. 0010 * All rights reserved. 0011 * 0012 * This software is licensed under terms that can be found in the LICENSE file 0013 * in the root directory of this software component. 0014 * If no LICENSE file comes with this software, it is provided AS-IS. 0015 * 0016 ****************************************************************************** 0017 */ 0018 0019 /* Define to prevent recursive inclusion -------------------------------------*/ 0020 #ifndef STM32H7xx_HAL_SWPMI_H 0021 #define STM32H7xx_HAL_SWPMI_H 0022 0023 #ifdef __cplusplus 0024 extern "C" { 0025 #endif 0026 0027 /* Includes ------------------------------------------------------------------*/ 0028 #include "stm32h7xx_hal_def.h" 0029 0030 /** @addtogroup STM32H7xx_HAL_Driver 0031 * @{ 0032 */ 0033 0034 0035 /** @addtogroup SWPMI 0036 * @{ 0037 */ 0038 0039 /* Exported types ------------------------------------------------------------*/ 0040 /** @defgroup SWPMI_Exported_Types SWPMI Exported Types 0041 * @ingroup RTEMSBSPsARMSTM32H7 0042 * @{ 0043 */ 0044 0045 /** 0046 * @brief SWPMI Init Structure definition 0047 */ 0048 typedef struct 0049 { 0050 uint32_t VoltageClass; /*!< Specifies the SWP Voltage Class. 0051 This parameter can be a value of @ref SWPMI_Voltage_Class */ 0052 0053 uint32_t BitRate; /*!< Specifies the SWPMI Bitrate. 0054 This parameter must be a number between 0 and 255U. 0055 The Bitrate is computed using the following formula: 0056 SWPMI_freq = SWPMI_clk / (((BitRate) + 1) * 4) 0057 */ 0058 0059 uint32_t TxBufferingMode; /*!< Specifies the transmission buffering mode. 0060 This parameter can be a value of @ref SWPMI_Tx_Buffering_Mode */ 0061 0062 uint32_t RxBufferingMode; /*!< Specifies the reception buffering mode. 0063 This parameter can be a value of @ref SWPMI_Rx_Buffering_Mode */ 0064 0065 } SWPMI_InitTypeDef; 0066 0067 0068 /** 0069 * @brief HAL SWPMI State structures definition 0070 */ 0071 typedef enum 0072 { 0073 HAL_SWPMI_STATE_RESET = 0x00, /*!< Peripheral Reset state */ 0074 HAL_SWPMI_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */ 0075 HAL_SWPMI_STATE_BUSY = 0x02, /*!< an internal process is ongoing */ 0076 HAL_SWPMI_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */ 0077 HAL_SWPMI_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */ 0078 HAL_SWPMI_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission and Reception process is ongoing */ 0079 HAL_SWPMI_STATE_TIMEOUT = 0x03, /*!< Timeout state */ 0080 HAL_SWPMI_STATE_ERROR = 0x04 /*!< Error */ 0081 } HAL_SWPMI_StateTypeDef; 0082 0083 /** 0084 * @brief SWPMI handle Structure definition 0085 */ 0086 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 0087 typedef struct __SWPMI_HandleTypeDef 0088 #else 0089 typedef struct 0090 #endif /* USE_HAL_SWPMI_REGISTER_CALLBACKS */ 0091 { 0092 SWPMI_TypeDef *Instance; /*!< SWPMI registers base address */ 0093 0094 SWPMI_InitTypeDef Init; /*!< SWPMI communication parameters */ 0095 0096 uint32_t *pTxBuffPtr; /*!< Pointer to SWPMI Tx transfer Buffer */ 0097 0098 uint32_t TxXferSize; /*!< SWPMI Tx Transfer size */ 0099 0100 uint32_t TxXferCount; /*!< SWPMI Tx Transfer Counter */ 0101 0102 uint32_t *pRxBuffPtr; /*!< Pointer to SWPMI Rx transfer Buffer */ 0103 0104 uint32_t RxXferSize; /*!< SWPMI Rx Transfer size */ 0105 0106 uint32_t RxXferCount; /*!< SWPMI Rx Transfer Counter */ 0107 0108 DMA_HandleTypeDef *hdmatx; /*!< SWPMI Tx DMA Handle parameters */ 0109 0110 DMA_HandleTypeDef *hdmarx; /*!< SWPMI Rx DMA Handle parameters */ 0111 0112 HAL_LockTypeDef Lock; /*!< SWPMI object */ 0113 0114 __IO HAL_SWPMI_StateTypeDef State; /*!< SWPMI communication state */ 0115 0116 __IO uint32_t ErrorCode; /*!< SWPMI Error code */ 0117 0118 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 0119 void (*RxCpltCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI receive complete callback */ 0120 void (*RxHalfCpltCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI receive half complete callback */ 0121 void (*TxCpltCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI transmit complete callback */ 0122 void (*TxHalfCpltCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI transmit half complete callback */ 0123 void (*ErrorCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI error callback */ 0124 void (*MspInitCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI MSP init callback */ 0125 void (*MspDeInitCallback)(struct __SWPMI_HandleTypeDef *hswpmi); /*!< SWPMI MSP de-init callback */ 0126 #endif 0127 0128 } SWPMI_HandleTypeDef; 0129 0130 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 0131 /** 0132 * @brief SWPMI callback ID enumeration definition 0133 */ 0134 typedef enum 0135 { 0136 HAL_SWPMI_RX_COMPLETE_CB_ID = 0x00U, /*!< SWPMI receive complete callback ID */ 0137 HAL_SWPMI_RX_HALFCOMPLETE_CB_ID = 0x01U, /*!< SWPMI receive half complete callback ID */ 0138 HAL_SWPMI_TX_COMPLETE_CB_ID = 0x02U, /*!< SWPMI transmit complete callback ID */ 0139 HAL_SWPMI_TX_HALFCOMPLETE_CB_ID = 0x03U, /*!< SWPMI transmit half complete callback ID */ 0140 HAL_SWPMI_ERROR_CB_ID = 0x04U, /*!< SWPMI error callback ID */ 0141 HAL_SWPMI_MSPINIT_CB_ID = 0x05U, /*!< SWPMI MSP init callback ID */ 0142 HAL_SWPMI_MSPDEINIT_CB_ID = 0x06U /*!< SWPMI MSP de-init callback ID */ 0143 } HAL_SWPMI_CallbackIDTypeDef; 0144 0145 /** 0146 * @brief SWPMI callback pointer definition 0147 */ 0148 typedef void (*pSWPMI_CallbackTypeDef)(SWPMI_HandleTypeDef *hswpmi); 0149 #endif 0150 0151 /** 0152 * @} 0153 */ 0154 0155 /* Exported constants --------------------------------------------------------*/ 0156 /** @defgroup SWPMI_Exported_Constants SWPMI Exported Constants 0157 * @ingroup RTEMSBSPsARMSTM32H7 0158 * @{ 0159 */ 0160 0161 /** 0162 * @defgroup SWPMI_Error_Code SWPMI Error Code Bitmap 0163 * @ingroup RTEMSBSPsARMSTM32H7 0164 * @{ 0165 */ 0166 #define HAL_SWPMI_ERROR_NONE ((uint32_t)0x00000000) /*!< No error */ 0167 #define HAL_SWPMI_ERROR_CRC ((uint32_t)0x00000004) /*!< frame error */ 0168 #define HAL_SWPMI_ERROR_OVR ((uint32_t)0x00000008) /*!< Overrun error */ 0169 #define HAL_SWPMI_ERROR_UDR ((uint32_t)0x0000000C) /*!< Underrun error */ 0170 #define HAL_SWPMI_ERROR_DMA ((uint32_t)0x00000010) /*!< DMA transfer error */ 0171 #define HAL_SWPMI_ERROR_TIMEOUT ((uint32_t)0x00000020) /*!< Transfer timeout */ 0172 #define HAL_SWPMI_ERROR_TXBEF_TIMEOUT ((uint32_t)0x00000040) /*!< End Tx buffer timeout */ 0173 #define HAL_SWPMI_ERROR_TRANSCEIVER_NOT_READY ((uint32_t)0x00000080) /*!< Transceiver not ready */ 0174 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 0175 #define HAL_SWPMI_ERROR_INVALID_CALLBACK ((uint32_t)0x00000100) /*!< Invalid callback error */ 0176 #endif 0177 /** 0178 * @} 0179 */ 0180 0181 /** @defgroup SWPMI_Voltage_Class SWPMI Voltage Class 0182 * @ingroup RTEMSBSPsARMSTM32H7 0183 * @{ 0184 */ 0185 #define SWPMI_VOLTAGE_CLASS_C ((uint32_t)0x00000000) 0186 #define SWPMI_VOLTAGE_CLASS_B SWPMI_OR_CLASS 0187 /** 0188 * @} 0189 */ 0190 0191 /** @defgroup SWPMI_Tx_Buffering_Mode SWPMI Tx Buffering Mode 0192 * @ingroup RTEMSBSPsARMSTM32H7 0193 * @{ 0194 */ 0195 #define SWPMI_TX_NO_SOFTWAREBUFFER ((uint32_t)0x00000000) 0196 #define SWPMI_TX_SINGLE_SOFTWAREBUFFER ((uint32_t)0x00000000) 0197 #define SWPMI_TX_MULTI_SOFTWAREBUFFER SWPMI_CR_TXMODE 0198 /** 0199 * @} 0200 */ 0201 0202 /** @defgroup SWPMI_Rx_Buffering_Mode SWPMI Rx Buffering Mode 0203 * @ingroup RTEMSBSPsARMSTM32H7 0204 * @{ 0205 */ 0206 #define SWPMI_RX_NO_SOFTWAREBUFFER ((uint32_t)0x00000000) 0207 #define SWPMI_RX_SINGLE_SOFTWAREBUFFER ((uint32_t)0x00000000) 0208 #define SWPMI_RX_MULTI_SOFTWAREBUFFER SWPMI_CR_RXMODE 0209 /** 0210 * @} 0211 */ 0212 0213 /** @defgroup SWPMI_Flags SWPMI Status Flags 0214 * @ingroup RTEMSBSPsARMSTM32H7 0215 * Elements values convention: 0xXXXXXXXX 0216 * - 0xXXXXXXXX : Flag mask in the ISR register 0217 * @{ 0218 */ 0219 #define SWPMI_FLAG_RXBFF SWPMI_ISR_RXBFF 0220 #define SWPMI_FLAG_TXBEF SWPMI_ISR_TXBEF 0221 #define SWPMI_FLAG_RXBERF SWPMI_ISR_RXBERF 0222 #define SWPMI_FLAG_RXOVRF SWPMI_ISR_RXOVRF 0223 #define SWPMI_FLAG_TXUNRF SWPMI_ISR_TXUNRF 0224 #define SWPMI_FLAG_RXNE SWPMI_ISR_RXNE 0225 #define SWPMI_FLAG_TXE SWPMI_ISR_TXE 0226 #define SWPMI_FLAG_TCF SWPMI_ISR_TCF 0227 #define SWPMI_FLAG_SRF SWPMI_ISR_SRF 0228 #define SWPMI_FLAG_SUSP SWPMI_ISR_SUSP 0229 #define SWPMI_FLAG_DEACTF SWPMI_ISR_DEACTF 0230 #define SWPMI_FLAG_RDYF SWPMI_ISR_RDYF 0231 /** 0232 * @} 0233 */ 0234 0235 /** @defgroup SWPMI_Interrupt_definition SWPMI Interrupts Definition 0236 * @ingroup RTEMSBSPsARMSTM32H7 0237 * Elements values convention: 0xXXXX 0238 * - 0xXXXX : Flag mask in the IER register 0239 * @{ 0240 */ 0241 #define SWPMI_IT_RDYIE SWPMI_IER_RDYIE 0242 #define SWPMI_IT_SRIE SWPMI_IER_SRIE 0243 #define SWPMI_IT_TCIE SWPMI_IER_TCIE 0244 #define SWPMI_IT_TIE SWPMI_IER_TIE 0245 #define SWPMI_IT_RIE SWPMI_IER_RIE 0246 #define SWPMI_IT_TXUNRIE SWPMI_IER_TXUNRIE 0247 #define SWPMI_IT_RXOVRIE SWPMI_IER_RXOVRIE 0248 #define SWPMI_IT_RXBERIE SWPMI_IER_RXBERIE 0249 #define SWPMI_IT_TXBEIE SWPMI_IER_TXBEIE 0250 #define SWPMI_IT_RXBFIE SWPMI_IER_RXBFIE 0251 /** 0252 * @} 0253 */ 0254 0255 /** 0256 * @} 0257 */ 0258 0259 /* Exported macros -----------------------------------------------------------*/ 0260 /** @defgroup SWPMI_Exported_Macros SWPMI Exported Macros 0261 * @ingroup RTEMSBSPsARMSTM32H7 0262 * @{ 0263 */ 0264 0265 /** @brief Reset SWPMI handle state. 0266 * @param __HANDLE__ specifies the SWPMI Handle. 0267 * @retval None 0268 */ 0269 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 0270 #define __HAL_SWPMI_RESET_HANDLE_STATE(__HANDLE__) do{ \ 0271 (__HANDLE__)->State = HAL_SWPMI_STATE_RESET; \ 0272 (__HANDLE__)->MspInitCallback = NULL; \ 0273 (__HANDLE__)->MspDeInitCallback = NULL; \ 0274 } while(0) 0275 #else 0276 #define __HAL_SWPMI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SWPMI_STATE_RESET) 0277 #endif 0278 0279 /** 0280 * @brief Enable the SWPMI peripheral. 0281 * @param __HANDLE__ SWPMI handle 0282 * @retval None 0283 */ 0284 #define __HAL_SWPMI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPACT) 0285 0286 /** 0287 * @brief Disable the SWPMI peripheral. 0288 * @param __HANDLE__ SWPMI handle 0289 * @retval None 0290 */ 0291 #define __HAL_SWPMI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPACT) 0292 0293 /** 0294 * @brief Enable the SWPMI transceiver. 0295 * @param __HANDLE__ SWPMI handle 0296 * @retval None 0297 */ 0298 #define __HAL_SWPMI_TRANSCEIVER_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPEN) 0299 0300 /** 0301 * @brief Disable the SWPMI transceiver. 0302 * @param __HANDLE__ SWPMI handle 0303 * @retval None 0304 */ 0305 #define __HAL_SWPMI_TRANSCEIVER_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPEN) 0306 0307 /** @brief Check whether the specified SWPMI flag is set or not. 0308 * @param __HANDLE__ specifies the SWPMI Handle. 0309 * @param __FLAG__ specifies the flag to check. 0310 * This parameter can be one of the following values: 0311 * @arg SWPMI_FLAG_RXBFF Receive buffer full flag. 0312 * @arg SWPMI_FLAG_TXBEF Transmit buffer empty flag. 0313 * @arg SWPMI_FLAG_RXBERF Receive CRC error flag. 0314 * @arg SWPMI_FLAG_RXOVRF Receive overrun error flag. 0315 * @arg SWPMI_FLAG_TXUNRF Transmit underrun error flag. 0316 * @arg SWPMI_FLAG_RXNE Receive data register not empty. 0317 * @arg SWPMI_FLAG_TXE Transmit data register empty. 0318 * @arg SWPMI_FLAG_TCF Transfer complete flag. 0319 * @arg SWPMI_FLAG_SRF Slave resume flag. 0320 * @arg SWPMI_FLAG_SUSP SUSPEND flag. 0321 * @arg SWPMI_FLAG_DEACTF DEACTIVATED flag. 0322 * @arg SWPMI_FLAG_RDYF Transceiver ready flag. 0323 * @retval The new state of __FLAG__ (TRUE or FALSE). 0324 */ 0325 #define __HAL_SWPMI_GET_FLAG(__HANDLE__, __FLAG__) (READ_BIT((__HANDLE__)->Instance->ISR, (__FLAG__)) == (__FLAG__)) 0326 0327 /** @brief Clear the specified SWPMI ISR flag. 0328 * @param __HANDLE__ specifies the SWPMI Handle. 0329 * @param __FLAG__ specifies the flag to clear. 0330 * This parameter can be one of the following values: 0331 * @arg SWPMI_FLAG_RXBFF Receive buffer full flag. 0332 * @arg SWPMI_FLAG_TXBEF Transmit buffer empty flag. 0333 * @arg SWPMI_FLAG_RXBERF Receive CRC error flag. 0334 * @arg SWPMI_FLAG_RXOVRF Receive overrun error flag. 0335 * @arg SWPMI_FLAG_TXUNRF Transmit underrun error flag. 0336 * @arg SWPMI_FLAG_TCF Transfer complete flag. 0337 * @arg SWPMI_FLAG_SRF Slave resume flag. 0338 * @arg SWPMI_FLAG_RDYF Transceiver ready flag. 0339 * @retval None 0340 */ 0341 #define __HAL_SWPMI_CLEAR_FLAG(__HANDLE__, __FLAG__) WRITE_REG((__HANDLE__)->Instance->ICR, (__FLAG__)) 0342 0343 /** @brief Enable the specified SWPMI interrupt. 0344 * @param __HANDLE__ specifies the SWPMI Handle. 0345 * @param __INTERRUPT__ specifies the SWPMI interrupt source to enable. 0346 * This parameter can be one of the following values: 0347 * @arg SWPMI_IT_RDYIE Transceiver ready interrupt. 0348 * @arg SWPMI_IT_SRIE Slave resume interrupt. 0349 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 0350 * @arg SWPMI_IT_TIE Transmit interrupt. 0351 * @arg SWPMI_IT_RIE Receive interrupt. 0352 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 0353 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 0354 * @arg SWPMI_IT_RXBEIE Receive CRC error interrupt. 0355 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 0356 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 0357 * @retval None 0358 */ 0359 #define __HAL_SWPMI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->IER, (__INTERRUPT__)) 0360 0361 /** @brief Disable the specified SWPMI interrupt. 0362 * @param __HANDLE__ specifies the SWPMI Handle. 0363 * @param __INTERRUPT__ specifies the SWPMI interrupt source to disable. 0364 * This parameter can be one of the following values: 0365 * @arg SWPMI_IT_RDYIE Transceiver ready interrupt. 0366 * @arg SWPMI_IT_SRIE Slave resume interrupt. 0367 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 0368 * @arg SWPMI_IT_TIE Transmit interrupt. 0369 * @arg SWPMI_IT_RIE Receive interrupt. 0370 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 0371 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 0372 * @arg SWPMI_IT_RXBEIE Receive CRC error interrupt. 0373 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 0374 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 0375 * @retval None 0376 */ 0377 #define __HAL_SWPMI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->IER, (__INTERRUPT__)) 0378 0379 /** @brief Check whether the specified SWPMI interrupt has occurred or not. 0380 * @param __HANDLE__ specifies the SWPMI Handle. 0381 * @param __IT__ specifies the SWPMI interrupt to check. 0382 * This parameter can be one of the following values: 0383 * @arg SWPMI_IT_RDYIE Transceiver ready interrupt. 0384 * @arg SWPMI_IT_SRIE Slave resume interrupt. 0385 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 0386 * @arg SWPMI_IT_TIE Transmit interrupt. 0387 * @arg SWPMI_IT_RIE Receive interrupt. 0388 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 0389 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 0390 * @arg SWPMI_IT_RXBERIE Receive CRC error interrupt. 0391 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 0392 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 0393 * @retval The new state of __IT__ (TRUE or FALSE). 0394 */ 0395 #define __HAL_SWPMI_GET_IT(__HANDLE__, __IT__) (READ_BIT((__HANDLE__)->Instance->ISR,(__IT__)) == (__IT__)) 0396 0397 /** @brief Check whether the specified SWPMI interrupt source is enabled or not. 0398 * @param __HANDLE__ specifies the SWPMI Handle. 0399 * @param __IT__ specifies the SWPMI interrupt source to check. 0400 * This parameter can be one of the following values: 0401 * @arg SWPMI_IT_RDYIE Transceiver ready interrupt. 0402 * @arg SWPMI_IT_SRIE Slave resume interrupt. 0403 * @arg SWPMI_IT_TCIE Transmit complete interrupt. 0404 * @arg SWPMI_IT_TIE Transmit interrupt. 0405 * @arg SWPMI_IT_RIE Receive interrupt. 0406 * @arg SWPMI_IT_TXUNRIE Transmit underrun error interrupt. 0407 * @arg SWPMI_IT_RXOVRIE Receive overrun error interrupt. 0408 * @arg SWPMI_IT_RXBERIE Receive CRC error interrupt. 0409 * @arg SWPMI_IT_TXBEIE Transmit buffer empty interrupt. 0410 * @arg SWPMI_IT_RXBFIE Receive buffer full interrupt. 0411 * @retval The new state of __IT__ (TRUE or FALSE). 0412 */ 0413 #define __HAL_SWPMI_GET_IT_SOURCE(__HANDLE__, __IT__) ((READ_BIT((__HANDLE__)->Instance->IER, (__IT__)) == (__IT__)) ? SET : RESET) 0414 0415 /** 0416 * @} 0417 */ 0418 0419 /* Exported functions --------------------------------------------------------*/ 0420 /** @defgroup SWPMI_Exported_Functions SWPMI Exported Functions 0421 * @ingroup RTEMSBSPsARMSTM32H7 0422 * @{ 0423 */ 0424 /* Initialization/de-initialization functions ********************************/ 0425 HAL_StatusTypeDef HAL_SWPMI_Init(SWPMI_HandleTypeDef *hswpmi); 0426 HAL_StatusTypeDef HAL_SWPMI_DeInit(SWPMI_HandleTypeDef *hswpmi); 0427 void HAL_SWPMI_MspInit(SWPMI_HandleTypeDef *hswpmi); 0428 void HAL_SWPMI_MspDeInit(SWPMI_HandleTypeDef *hswpmi); 0429 0430 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 0431 /* SWPMI callbacks register/unregister functions ********************************/ 0432 HAL_StatusTypeDef HAL_SWPMI_RegisterCallback(SWPMI_HandleTypeDef *hswpmi, 0433 HAL_SWPMI_CallbackIDTypeDef CallbackID, 0434 pSWPMI_CallbackTypeDef pCallback); 0435 HAL_StatusTypeDef HAL_SWPMI_UnRegisterCallback(SWPMI_HandleTypeDef *hswpmi, 0436 HAL_SWPMI_CallbackIDTypeDef CallbackID); 0437 #endif 0438 0439 /* IO operation functions *****************************************************/ 0440 HAL_StatusTypeDef HAL_SWPMI_Transmit(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout); 0441 HAL_StatusTypeDef HAL_SWPMI_Receive(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout); 0442 HAL_StatusTypeDef HAL_SWPMI_Transmit_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 0443 HAL_StatusTypeDef HAL_SWPMI_Receive_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 0444 HAL_StatusTypeDef HAL_SWPMI_Transmit_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 0445 HAL_StatusTypeDef HAL_SWPMI_Receive_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size); 0446 HAL_StatusTypeDef HAL_SWPMI_DMAStop(SWPMI_HandleTypeDef *hswpmi); 0447 HAL_StatusTypeDef HAL_SWPMI_EnableLoopback(SWPMI_HandleTypeDef *hswpmi); 0448 HAL_StatusTypeDef HAL_SWPMI_DisableLoopback(SWPMI_HandleTypeDef *hswpmi); 0449 void HAL_SWPMI_IRQHandler(SWPMI_HandleTypeDef *hswpmi); 0450 void HAL_SWPMI_TxCpltCallback(SWPMI_HandleTypeDef *hswpmi); 0451 void HAL_SWPMI_TxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi); 0452 void HAL_SWPMI_RxCpltCallback(SWPMI_HandleTypeDef *hswpmi); 0453 void HAL_SWPMI_RxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi); 0454 void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi); 0455 0456 /* Peripheral Control and State functions ************************************/ 0457 HAL_SWPMI_StateTypeDef HAL_SWPMI_GetState(SWPMI_HandleTypeDef *hswpmi); 0458 uint32_t HAL_SWPMI_GetError(SWPMI_HandleTypeDef *hswpmi); 0459 0460 /** 0461 * @} 0462 */ 0463 0464 /* Private types -------------------------------------------------------------*/ 0465 /** @defgroup SWPMI_Private_Types SWPMI Private Types 0466 * @ingroup RTEMSBSPsARMSTM32H7 0467 * @{ 0468 */ 0469 0470 /** 0471 * @} 0472 */ 0473 0474 /* Private variables ---------------------------------------------------------*/ 0475 /** @defgroup SWPMI_Private_Variables SWPMI Private Variables 0476 * @ingroup RTEMSBSPsARMSTM32H7 0477 * @{ 0478 */ 0479 0480 /** 0481 * @} 0482 */ 0483 0484 /* Private constants ---------------------------------------------------------*/ 0485 /** @defgroup SWPMI_Private_Constants SWPMI Private Constants 0486 * @ingroup RTEMSBSPsARMSTM32H7 0487 * @{ 0488 */ 0489 0490 /** 0491 * @} 0492 */ 0493 0494 /* Private macros ------------------------------------------------------------*/ 0495 /** @defgroup SWPMI_Private_Macros SWPMI Private Macros 0496 * @ingroup RTEMSBSPsARMSTM32H7 0497 * @{ 0498 */ 0499 0500 0501 #define IS_SWPMI_VOLTAGE_CLASS(__CLASS__) (((__CLASS__) == SWPMI_VOLTAGE_CLASS_C) || \ 0502 ((__CLASS__) == SWPMI_VOLTAGE_CLASS_B)) 0503 0504 #define IS_SWPMI_BITRATE_VALUE(__VALUE__) (((__VALUE__) <= 255U)) 0505 0506 0507 #define IS_SWPMI_TX_BUFFERING_MODE(__MODE__) (((__MODE__) == SWPMI_TX_NO_SOFTWAREBUFFER) || \ 0508 ((__MODE__) == SWPMI_TX_MULTI_SOFTWAREBUFFER)) 0509 0510 0511 #define IS_SWPMI_RX_BUFFERING_MODE(__MODE__) (((__MODE__) == SWPMI_RX_NO_SOFTWAREBUFFER) || \ 0512 ((__MODE__) == SWPMI_RX_MULTI_SOFTWAREBUFFER)) 0513 0514 /** 0515 * @} 0516 */ 0517 0518 /** 0519 * @} 0520 */ 0521 0522 0523 /** 0524 * @} 0525 */ 0526 0527 #ifdef __cplusplus 0528 } 0529 #endif 0530 0531 #endif /* STM32H7xx_HAL_SWPMI_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |