mbed library sources

Dependents:   Marvino mbot

Fork of mbed-src by mbed official

Committer:
jaerts
Date:
Tue Dec 22 13:22:16 2015 +0000
Revision:
637:ed69428d4850
Parent:
610:813dcc80987e
Add very shady LPC1768 CAN Filter implementation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 610:813dcc80987e 1 /**
mbed_official 610:813dcc80987e 2 ******************************************************************************
mbed_official 610:813dcc80987e 3 * @file stm32l4xx_hal_swpmi.h
mbed_official 610:813dcc80987e 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.0
mbed_official 610:813dcc80987e 6 * @date 26-June-2015
mbed_official 610:813dcc80987e 7 * @brief Header file of SWPMI HAL module.
mbed_official 610:813dcc80987e 8 ******************************************************************************
mbed_official 610:813dcc80987e 9 * @attention
mbed_official 610:813dcc80987e 10 *
mbed_official 610:813dcc80987e 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 610:813dcc80987e 12 *
mbed_official 610:813dcc80987e 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 610:813dcc80987e 14 * are permitted provided that the following conditions are met:
mbed_official 610:813dcc80987e 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 610:813dcc80987e 16 * this list of conditions and the following disclaimer.
mbed_official 610:813dcc80987e 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 610:813dcc80987e 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 610:813dcc80987e 19 * and/or other materials provided with the distribution.
mbed_official 610:813dcc80987e 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 610:813dcc80987e 21 * may be used to endorse or promote products derived from this software
mbed_official 610:813dcc80987e 22 * without specific prior written permission.
mbed_official 610:813dcc80987e 23 *
mbed_official 610:813dcc80987e 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 610:813dcc80987e 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 610:813dcc80987e 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 610:813dcc80987e 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 610:813dcc80987e 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 610:813dcc80987e 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 610:813dcc80987e 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 610:813dcc80987e 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 610:813dcc80987e 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 610:813dcc80987e 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 610:813dcc80987e 34 *
mbed_official 610:813dcc80987e 35 ******************************************************************************
mbed_official 610:813dcc80987e 36 */
mbed_official 610:813dcc80987e 37
mbed_official 610:813dcc80987e 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 610:813dcc80987e 39 #ifndef __STM32L4xx_HAL_SWPMI_H
mbed_official 610:813dcc80987e 40 #define __STM32L4xx_HAL_SWPMI_H
mbed_official 610:813dcc80987e 41
mbed_official 610:813dcc80987e 42 #ifdef __cplusplus
mbed_official 610:813dcc80987e 43 extern "C" {
mbed_official 610:813dcc80987e 44 #endif
mbed_official 610:813dcc80987e 45
mbed_official 610:813dcc80987e 46 /* Includes ------------------------------------------------------------------*/
mbed_official 610:813dcc80987e 47 #include "stm32l4xx_hal_def.h"
mbed_official 610:813dcc80987e 48
mbed_official 610:813dcc80987e 49 /** @addtogroup STM32L4xx_HAL_Driver
mbed_official 610:813dcc80987e 50 * @{
mbed_official 610:813dcc80987e 51 */
mbed_official 610:813dcc80987e 52
mbed_official 610:813dcc80987e 53 /** @addtogroup SWPMI
mbed_official 610:813dcc80987e 54 * @{
mbed_official 610:813dcc80987e 55 */
mbed_official 610:813dcc80987e 56
mbed_official 610:813dcc80987e 57 /* Exported types ------------------------------------------------------------*/
mbed_official 610:813dcc80987e 58 /** @defgroup SWPMI_Exported_Types SWPMI Exported Types
mbed_official 610:813dcc80987e 59 * @{
mbed_official 610:813dcc80987e 60 */
mbed_official 610:813dcc80987e 61
mbed_official 610:813dcc80987e 62 /**
mbed_official 610:813dcc80987e 63 * @brief SWPMI Init Structure definition
mbed_official 610:813dcc80987e 64 */
mbed_official 610:813dcc80987e 65 typedef struct
mbed_official 610:813dcc80987e 66 {
mbed_official 610:813dcc80987e 67 uint32_t VoltageClass; /*!< Specifies the SWP Voltage Class.
mbed_official 610:813dcc80987e 68 This parameter can be a value of @ref SWPMI_Voltage_Class */
mbed_official 610:813dcc80987e 69
mbed_official 610:813dcc80987e 70 uint32_t BitRate; /*!< Specifies the SWPMI Bitrate.
mbed_official 610:813dcc80987e 71 This parameter must be a number between 0 and 63.
mbed_official 610:813dcc80987e 72 The Bitrate is computed using the following formula:
mbed_official 610:813dcc80987e 73 SWPMI_freq = SWPMI_clk / (((BitRate) + 1) * 4)
mbed_official 610:813dcc80987e 74 */
mbed_official 610:813dcc80987e 75
mbed_official 610:813dcc80987e 76 uint32_t TxBufferingMode; /*!< Specifies the transmission buffering mode.
mbed_official 610:813dcc80987e 77 This parameter can be a value of @ref SWPMI_Tx_Buffering_Mode */
mbed_official 610:813dcc80987e 78
mbed_official 610:813dcc80987e 79 uint32_t RxBufferingMode; /*!< Specifies the reception buffering mode.
mbed_official 610:813dcc80987e 80 This parameter can be a value of @ref SWPMI_Rx_Buffering_Mode */
mbed_official 610:813dcc80987e 81
mbed_official 610:813dcc80987e 82 }SWPMI_InitTypeDef;
mbed_official 610:813dcc80987e 83
mbed_official 610:813dcc80987e 84
mbed_official 610:813dcc80987e 85 /**
mbed_official 610:813dcc80987e 86 * @brief HAL SWPMI State structures definition
mbed_official 610:813dcc80987e 87 */
mbed_official 610:813dcc80987e 88 typedef enum
mbed_official 610:813dcc80987e 89 {
mbed_official 610:813dcc80987e 90 HAL_SWPMI_STATE_RESET = 0x00, /*!< Peripheral Reset state */
mbed_official 610:813dcc80987e 91 HAL_SWPMI_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */
mbed_official 610:813dcc80987e 92 HAL_SWPMI_STATE_BUSY = 0x02, /*!< an internal process is ongoing */
mbed_official 610:813dcc80987e 93 HAL_SWPMI_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */
mbed_official 610:813dcc80987e 94 HAL_SWPMI_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */
mbed_official 610:813dcc80987e 95 HAL_SWPMI_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission and Reception process is ongoing */
mbed_official 610:813dcc80987e 96 HAL_SWPMI_STATE_TIMEOUT = 0x03, /*!< Timeout state */
mbed_official 610:813dcc80987e 97 HAL_SWPMI_STATE_ERROR = 0x04 /*!< Error */
mbed_official 610:813dcc80987e 98 }HAL_SWPMI_StateTypeDef;
mbed_official 610:813dcc80987e 99
mbed_official 610:813dcc80987e 100 /**
mbed_official 610:813dcc80987e 101 * @brief SWPMI handle Structure definition
mbed_official 610:813dcc80987e 102 */
mbed_official 610:813dcc80987e 103 typedef struct
mbed_official 610:813dcc80987e 104 {
mbed_official 610:813dcc80987e 105 SWPMI_TypeDef *Instance; /* SWPMI registers base address */
mbed_official 610:813dcc80987e 106
mbed_official 610:813dcc80987e 107 SWPMI_InitTypeDef Init; /* SWMPI communication parameters */
mbed_official 610:813dcc80987e 108
mbed_official 610:813dcc80987e 109 uint32_t *pTxBuffPtr; /* Pointer to SWPMI Tx transfer Buffer */
mbed_official 610:813dcc80987e 110
mbed_official 610:813dcc80987e 111 uint32_t TxXferSize; /* SWPMI Tx Transfer size */
mbed_official 610:813dcc80987e 112
mbed_official 610:813dcc80987e 113 uint32_t TxXferCount; /* SWPMI Tx Transfer Counter */
mbed_official 610:813dcc80987e 114
mbed_official 610:813dcc80987e 115 uint32_t *pRxBuffPtr; /* Pointer to SWPMI Rx transfer Buffer */
mbed_official 610:813dcc80987e 116
mbed_official 610:813dcc80987e 117 uint32_t RxXferSize; /* SWPMI Rx Transfer size */
mbed_official 610:813dcc80987e 118
mbed_official 610:813dcc80987e 119 uint32_t RxXferCount; /* SWPMI Rx Transfer Counter */
mbed_official 610:813dcc80987e 120
mbed_official 610:813dcc80987e 121 DMA_HandleTypeDef *hdmatx; /* SWPMI Tx DMA Handle parameters */
mbed_official 610:813dcc80987e 122
mbed_official 610:813dcc80987e 123 DMA_HandleTypeDef *hdmarx; /* SWPMI Rx DMA Handle parameters */
mbed_official 610:813dcc80987e 124
mbed_official 610:813dcc80987e 125 HAL_LockTypeDef Lock; /* SWPMI object */
mbed_official 610:813dcc80987e 126
mbed_official 610:813dcc80987e 127 __IO HAL_SWPMI_StateTypeDef State; /* SWPMI communication state */
mbed_official 610:813dcc80987e 128
mbed_official 610:813dcc80987e 129 __IO uint32_t ErrorCode; /* SWPMI Error code */
mbed_official 610:813dcc80987e 130
mbed_official 610:813dcc80987e 131 }SWPMI_HandleTypeDef;
mbed_official 610:813dcc80987e 132
mbed_official 610:813dcc80987e 133 /**
mbed_official 610:813dcc80987e 134 * @}
mbed_official 610:813dcc80987e 135 */
mbed_official 610:813dcc80987e 136
mbed_official 610:813dcc80987e 137 /* Exported constants --------------------------------------------------------*/
mbed_official 610:813dcc80987e 138 /** @defgroup SWPMI_Exported_Constants SWPMI Exported Constants
mbed_official 610:813dcc80987e 139 * @{
mbed_official 610:813dcc80987e 140 */
mbed_official 610:813dcc80987e 141
mbed_official 610:813dcc80987e 142 /**
mbed_official 610:813dcc80987e 143 * @defgroup SWPMI_Error_Code SWPMI Error Code Bitmap
mbed_official 610:813dcc80987e 144 * @{
mbed_official 610:813dcc80987e 145 */
mbed_official 610:813dcc80987e 146 #define HAL_SWPMI_ERROR_NONE ((uint32_t)0x00000000) /*!< No error */
mbed_official 610:813dcc80987e 147 #define HAL_SWPMI_ERROR_CRC ((uint32_t)0x00000004) /*!< frame error */
mbed_official 610:813dcc80987e 148 #define HAL_SWPMI_ERROR_OVR ((uint32_t)0x00000008) /*!< Overrun error */
mbed_official 610:813dcc80987e 149 #define HAL_SWPMI_ERROR_UDR ((uint32_t)0x0000000C) /*!< Underrun error */
mbed_official 610:813dcc80987e 150 #define HAL_SWPMI_ERROR_DMA ((uint32_t)0x00000010) /*!< DMA transfer error */
mbed_official 610:813dcc80987e 151 /**
mbed_official 610:813dcc80987e 152 * @}
mbed_official 610:813dcc80987e 153 */
mbed_official 610:813dcc80987e 154
mbed_official 610:813dcc80987e 155 /** @defgroup SWPMI_Voltage_Class SWPMI Voltage Class
mbed_official 610:813dcc80987e 156 * @{
mbed_official 610:813dcc80987e 157 */
mbed_official 610:813dcc80987e 158 #define SWPMI_VOLTAGE_CLASS_C ((uint32_t)0x00000000)
mbed_official 610:813dcc80987e 159 #define SWPMI_VOLTAGE_CLASS_B SWPMI_OR_CLASS
mbed_official 610:813dcc80987e 160 /**
mbed_official 610:813dcc80987e 161 * @}
mbed_official 610:813dcc80987e 162 */
mbed_official 610:813dcc80987e 163
mbed_official 610:813dcc80987e 164 /** @defgroup SWPMI_Tx_Buffering_Mode SWPMI Tx Buffering Mode
mbed_official 610:813dcc80987e 165 * @{
mbed_official 610:813dcc80987e 166 */
mbed_official 610:813dcc80987e 167 #define SWPMI_TX_NO_SOFTWAREBUFFER ((uint32_t)0x00000000)
mbed_official 610:813dcc80987e 168 #define SWPMI_TX_SINGLE_SOFTWAREBUFFER ((uint32_t)0x00000000)
mbed_official 610:813dcc80987e 169 #define SWPMI_TX_MULTI_SOFTWAREBUFFER SWPMI_CR_TXMODE
mbed_official 610:813dcc80987e 170 /**
mbed_official 610:813dcc80987e 171 * @}
mbed_official 610:813dcc80987e 172 */
mbed_official 610:813dcc80987e 173
mbed_official 610:813dcc80987e 174 /** @defgroup SWPMI_Rx_Buffering_Mode SWPMI Rx Buffering Mode
mbed_official 610:813dcc80987e 175 * @{
mbed_official 610:813dcc80987e 176 */
mbed_official 610:813dcc80987e 177 #define SWPMI_RX_NO_SOFTWAREBUFFER ((uint32_t)0x00000000)
mbed_official 610:813dcc80987e 178 #define SWPMI_RX_SINGLE_SOFTWAREBUFFER ((uint32_t)0x00000000)
mbed_official 610:813dcc80987e 179 #define SWPMI_RX_MULTI_SOFTWAREBUFFER SWPMI_CR_RXMODE
mbed_official 610:813dcc80987e 180 /**
mbed_official 610:813dcc80987e 181 * @}
mbed_official 610:813dcc80987e 182 */
mbed_official 610:813dcc80987e 183
mbed_official 610:813dcc80987e 184 /** @defgroup SWPMI_Flags SWPMI Status Flags
mbed_official 610:813dcc80987e 185 * Elements values convention: 0xXXXXXXXX
mbed_official 610:813dcc80987e 186 * - 0xXXXXXXXX : Flag mask in the ISR register
mbed_official 610:813dcc80987e 187 * @{
mbed_official 610:813dcc80987e 188 */
mbed_official 610:813dcc80987e 189 #define SWPMI_FLAG_RXBFF SWPMI_ISR_RXBFF
mbed_official 610:813dcc80987e 190 #define SWPMI_FLAG_TXBEF SWPMI_ISR_TXBEF
mbed_official 610:813dcc80987e 191 #define SWPMI_FLAG_RXBERF SWPMI_ISR_RXBERF
mbed_official 610:813dcc80987e 192 #define SWPMI_FLAG_RXOVRF SWPMI_ISR_RXOVRF
mbed_official 610:813dcc80987e 193 #define SWPMI_FLAG_TXUNRF SWPMI_ISR_TXUNRF
mbed_official 610:813dcc80987e 194 #define SWPMI_FLAG_RXNE SWPMI_ISR_RXNE
mbed_official 610:813dcc80987e 195 #define SWPMI_FLAG_TXE SWPMI_ISR_TXE
mbed_official 610:813dcc80987e 196 #define SWPMI_FLAG_TCF SWPMI_ISR_TCF
mbed_official 610:813dcc80987e 197 #define SWPMI_FLAG_SRF SWPMI_ISR_SRF
mbed_official 610:813dcc80987e 198 #define SWPMI_FLAG_SUSP SWPMI_ISR_SUSP
mbed_official 610:813dcc80987e 199 #define SWPMI_FLAG_DEACTF SWPMI_ISR_DEACTF
mbed_official 610:813dcc80987e 200 /**
mbed_official 610:813dcc80987e 201 * @}
mbed_official 610:813dcc80987e 202 */
mbed_official 610:813dcc80987e 203
mbed_official 610:813dcc80987e 204 /** @defgroup SWPMI_Interrupt_definition SWPMI Interrupts Definition
mbed_official 610:813dcc80987e 205 * Elements values convention: 0xXXXX
mbed_official 610:813dcc80987e 206 * - 0xXXXX : Flag mask in the IER register
mbed_official 610:813dcc80987e 207 * @{
mbed_official 610:813dcc80987e 208 */
mbed_official 610:813dcc80987e 209 #define SWPMI_IT_SRIE SWPMI_IER_SRIE
mbed_official 610:813dcc80987e 210 #define SWPMI_IT_TCIE SWPMI_IER_TCIE
mbed_official 610:813dcc80987e 211 #define SWPMI_IT_TIE SWPMI_IER_TIE
mbed_official 610:813dcc80987e 212 #define SWPMI_IT_RIE SWPMI_IER_RIE
mbed_official 610:813dcc80987e 213 #define SWPMI_IT_TXUNRIE SWPMI_IER_TXUNRIE
mbed_official 610:813dcc80987e 214 #define SWPMI_IT_RXOVRIE SWPMI_IER_RXOVRIE
mbed_official 610:813dcc80987e 215 #define SWPMI_IT_RXBERIE SWPMI_IER_RXBERIE
mbed_official 610:813dcc80987e 216 #define SWPMI_IT_TXBEIE SWPMI_IER_TXBEIE
mbed_official 610:813dcc80987e 217 #define SWPMI_IT_RXBFIE SWPMI_IER_RXBFIE
mbed_official 610:813dcc80987e 218 /**
mbed_official 610:813dcc80987e 219 * @}
mbed_official 610:813dcc80987e 220 */
mbed_official 610:813dcc80987e 221
mbed_official 610:813dcc80987e 222 /**
mbed_official 610:813dcc80987e 223 * @}
mbed_official 610:813dcc80987e 224 */
mbed_official 610:813dcc80987e 225
mbed_official 610:813dcc80987e 226 /* Exported macros -----------------------------------------------------------*/
mbed_official 610:813dcc80987e 227 /** @defgroup SWPMI_Exported_Macros SWPMI Exported Macros
mbed_official 610:813dcc80987e 228 * @{
mbed_official 610:813dcc80987e 229 */
mbed_official 610:813dcc80987e 230
mbed_official 610:813dcc80987e 231 /** @brief Reset SWPMI handle state.
mbed_official 610:813dcc80987e 232 * @param __HANDLE__: specifies the SWPMI Handle.
mbed_official 610:813dcc80987e 233 * @retval None
mbed_official 610:813dcc80987e 234 */
mbed_official 610:813dcc80987e 235 #define __HAL_SWPMI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SWPMI_STATE_RESET)
mbed_official 610:813dcc80987e 236
mbed_official 610:813dcc80987e 237 /**
mbed_official 610:813dcc80987e 238 * @brief Enable the SWPMI peripheral.
mbed_official 610:813dcc80987e 239 * @param __HANDLE__: SWPMI handle
mbed_official 610:813dcc80987e 240 * @retval None
mbed_official 610:813dcc80987e 241 */
mbed_official 610:813dcc80987e 242 #define __HAL_SWPMI_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPACT)
mbed_official 610:813dcc80987e 243
mbed_official 610:813dcc80987e 244 /**
mbed_official 610:813dcc80987e 245 * @brief Disable the SWPMI peripheral.
mbed_official 610:813dcc80987e 246 * @param __HANDLE__: SWPMI handle
mbed_official 610:813dcc80987e 247 * @retval None
mbed_official 610:813dcc80987e 248 */
mbed_official 610:813dcc80987e 249 #define __HAL_SWPMI_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, SWPMI_CR_SWPACT)
mbed_official 610:813dcc80987e 250
mbed_official 610:813dcc80987e 251 /** @brief Check whether the specified SWPMI flag is set or not.
mbed_official 610:813dcc80987e 252 * @param __HANDLE__: specifies the SWPMI Handle.
mbed_official 610:813dcc80987e 253 * @param __FLAG__: specifies the flag to check.
mbed_official 610:813dcc80987e 254 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 255 * @arg SWPMI_FLAG_RXBFF : Receive buffer full flag.
mbed_official 610:813dcc80987e 256 * @arg SWPMI_FLAG_TXBEF : Transmit buffer empty flag.
mbed_official 610:813dcc80987e 257 * @arg SWPMI_FLAG_RXBERF : Receive CRC error flag.
mbed_official 610:813dcc80987e 258 * @arg SWPMI_FLAG_RXOVRF : Receive overrun error flag.
mbed_official 610:813dcc80987e 259 * @arg SWPMI_FLAG_TXUNRF : Transmit underrun error flag.
mbed_official 610:813dcc80987e 260 * @arg SWPMI_FLAG_RXNE : Receive data register not empty.
mbed_official 610:813dcc80987e 261 * @arg SWPMI_FLAG_TXE : Transmit data register empty.
mbed_official 610:813dcc80987e 262 * @arg SWPMI_FLAG_TCF : Transfer complete flag.
mbed_official 610:813dcc80987e 263 * @arg SWPMI_FLAG_SRF : Slave resume flag.
mbed_official 610:813dcc80987e 264 * @arg SWPMI_FLAG_SUSP : SUSPEND flag.
mbed_official 610:813dcc80987e 265 * @arg SWPMI_FLAG_DEACTF : DEACTIVATED flag.
mbed_official 610:813dcc80987e 266 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 610:813dcc80987e 267 */
mbed_official 610:813dcc80987e 268 #define __HAL_SWPMI_GET_FLAG(__HANDLE__, __FLAG__) (READ_BIT((__HANDLE__)->Instance->ISR, (__FLAG__)) == (__FLAG__))
mbed_official 610:813dcc80987e 269
mbed_official 610:813dcc80987e 270 /** @brief Clear the specified SWPMI ISR flag.
mbed_official 610:813dcc80987e 271 * @param __HANDLE__: specifies the SWPMI Handle.
mbed_official 610:813dcc80987e 272 * @param __FLAG__: specifies the flag to clear.
mbed_official 610:813dcc80987e 273 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 274 * @arg SWPMI_FLAG_RXBFF : Receive buffer full flag.
mbed_official 610:813dcc80987e 275 * @arg SWPMI_FLAG_TXBEF : Transmit buffer empty flag.
mbed_official 610:813dcc80987e 276 * @arg SWPMI_FLAG_RXBERF : Receive CRC error flag.
mbed_official 610:813dcc80987e 277 * @arg SWPMI_FLAG_RXOVRF : Receive overrun error flag.
mbed_official 610:813dcc80987e 278 * @arg SWPMI_FLAG_TXUNRF : Transmit underrun error flag.
mbed_official 610:813dcc80987e 279 * @arg SWPMI_FLAG_TCF : Transfer complete flag.
mbed_official 610:813dcc80987e 280 * @arg SWPMI_FLAG_SRF : Slave resume flag.
mbed_official 610:813dcc80987e 281 * @retval None
mbed_official 610:813dcc80987e 282 */
mbed_official 610:813dcc80987e 283 #define __HAL_SWPMI_CLEAR_FLAG(__HANDLE__, __FLAG__) WRITE_REG((__HANDLE__)->Instance->ICR, (__FLAG__))
mbed_official 610:813dcc80987e 284
mbed_official 610:813dcc80987e 285 /** @brief Enable the specified SWPMI interrupt.
mbed_official 610:813dcc80987e 286 * @param __HANDLE__: specifies the SWPMI Handle.
mbed_official 610:813dcc80987e 287 * @param __INTERRUPT__: specifies the SWPMI interrupt source to enable.
mbed_official 610:813dcc80987e 288 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 289 * @arg SWPMI_IT_SRIE : Slave resume interrupt.
mbed_official 610:813dcc80987e 290 * @arg SWPMI_IT_TCIE : Transmit complete interrupt.
mbed_official 610:813dcc80987e 291 * @arg SWPMI_IT_TIE : Transmit interrupt.
mbed_official 610:813dcc80987e 292 * @arg SWPMI_IT_RIE : Receive interrupt.
mbed_official 610:813dcc80987e 293 * @arg SWPMI_IT_TXUNRIE : Transmit underrun error interrupt.
mbed_official 610:813dcc80987e 294 * @arg SWPMI_IT_RXOVRIE : Receive overrun error interrupt.
mbed_official 610:813dcc80987e 295 * @arg SWPMI_IT_RXBEIE : Receive CRC error interrupt.
mbed_official 610:813dcc80987e 296 * @arg SWPMI_IT_TXBEIE : Transmit buffer empty interrupt.
mbed_official 610:813dcc80987e 297 * @arg SWPMI_IT_RXBFIE : Receive buffer full interrupt.
mbed_official 610:813dcc80987e 298 * @retval None
mbed_official 610:813dcc80987e 299 */
mbed_official 610:813dcc80987e 300 #define __HAL_SWPMI_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->IER, (__INTERRUPT__))
mbed_official 610:813dcc80987e 301
mbed_official 610:813dcc80987e 302 /** @brief Disable the specified SWPMI interrupt.
mbed_official 610:813dcc80987e 303 * @param __HANDLE__: specifies the SWPMI Handle.
mbed_official 610:813dcc80987e 304 * @param __INTERRUPT__: specifies the SWPMI interrupt source to disable.
mbed_official 610:813dcc80987e 305 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 306 * @arg SWPMI_IT_SRIE : Slave resume interrupt.
mbed_official 610:813dcc80987e 307 * @arg SWPMI_IT_TCIE : Transmit complete interrupt.
mbed_official 610:813dcc80987e 308 * @arg SWPMI_IT_TIE : Transmit interrupt.
mbed_official 610:813dcc80987e 309 * @arg SWPMI_IT_RIE : Receive interrupt.
mbed_official 610:813dcc80987e 310 * @arg SWPMI_IT_TXUNRIE : Transmit underrun error interrupt.
mbed_official 610:813dcc80987e 311 * @arg SWPMI_IT_RXOVRIE : Receive overrun error interrupt.
mbed_official 610:813dcc80987e 312 * @arg SWPMI_IT_RXBEIE : Receive CRC error interrupt.
mbed_official 610:813dcc80987e 313 * @arg SWPMI_IT_TXBEIE : Transmit buffer empty interrupt.
mbed_official 610:813dcc80987e 314 * @arg SWPMI_IT_RXBFIE : Receive buffer full interrupt.
mbed_official 610:813dcc80987e 315 * @retval None
mbed_official 610:813dcc80987e 316 */
mbed_official 610:813dcc80987e 317 #define __HAL_SWPMI_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->IER, (__INTERRUPT__))
mbed_official 610:813dcc80987e 318
mbed_official 610:813dcc80987e 319 /** @brief Check whether the specified SWPMI interrupt has occurred or not.
mbed_official 610:813dcc80987e 320 * @param __HANDLE__: specifies the SWPMI Handle.
mbed_official 610:813dcc80987e 321 * @param __IT__: specifies the SWPMI interrupt to check.
mbed_official 610:813dcc80987e 322 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 323 * @arg SWPMI_IT_SRIE : Slave resume interrupt.
mbed_official 610:813dcc80987e 324 * @arg SWPMI_IT_TCIE : Transmit complete interrupt.
mbed_official 610:813dcc80987e 325 * @arg SWPMI_IT_TIE : Transmit interrupt.
mbed_official 610:813dcc80987e 326 * @arg SWPMI_IT_RIE : Receive interrupt.
mbed_official 610:813dcc80987e 327 * @arg SWPMI_IT_TXUNRIE : Transmit underrun error interrupt.
mbed_official 610:813dcc80987e 328 * @arg SWPMI_IT_RXOVRIE : Receive overrun error interrupt.
mbed_official 610:813dcc80987e 329 * @arg SWPMI_IT_RXBERIE : Receive CRC error interrupt.
mbed_official 610:813dcc80987e 330 * @arg SWPMI_IT_TXBEIE : Transmit buffer empty interrupt.
mbed_official 610:813dcc80987e 331 * @arg SWPMI_IT_RXBFIE : Receive buffer full interrupt.
mbed_official 610:813dcc80987e 332 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 610:813dcc80987e 333 */
mbed_official 610:813dcc80987e 334 #define __HAL_SWPMI_GET_IT(__HANDLE__, __IT__) (READ_BIT((__HANDLE__)->Instance->ISR,(__IT__)) == (__IT__))
mbed_official 610:813dcc80987e 335
mbed_official 610:813dcc80987e 336 /** @brief Check whether the specified SWPMI interrupt source is enabled or not.
mbed_official 610:813dcc80987e 337 * @param __HANDLE__: specifies the SWPMI Handle.
mbed_official 610:813dcc80987e 338 * @param __IT__: specifies the SWPMI interrupt source to check.
mbed_official 610:813dcc80987e 339 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 340 * @arg SWPMI_IT_SRIE : Slave resume interrupt.
mbed_official 610:813dcc80987e 341 * @arg SWPMI_IT_TCIE : Transmit complete interrupt.
mbed_official 610:813dcc80987e 342 * @arg SWPMI_IT_TIE : Transmit interrupt.
mbed_official 610:813dcc80987e 343 * @arg SWPMI_IT_RIE : Receive interrupt.
mbed_official 610:813dcc80987e 344 * @arg SWPMI_IT_TXUNRIE : Transmit underrun error interrupt.
mbed_official 610:813dcc80987e 345 * @arg SWPMI_IT_RXOVRIE : Receive overrun error interrupt.
mbed_official 610:813dcc80987e 346 * @arg SWPMI_IT_RXBERIE : Receive CRC error interrupt.
mbed_official 610:813dcc80987e 347 * @arg SWPMI_IT_TXBEIE : Transmit buffer empty interrupt.
mbed_official 610:813dcc80987e 348 * @arg SWPMI_IT_RXBFIE : Receive buffer full interrupt.
mbed_official 610:813dcc80987e 349 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 610:813dcc80987e 350 */
mbed_official 610:813dcc80987e 351 #define __HAL_SWPMI_GET_IT_SOURCE(__HANDLE__, __IT__) ((READ_BIT((__HANDLE__)->Instance->IER, (__IT__)) == (__IT__)) ? SET : RESET)
mbed_official 610:813dcc80987e 352
mbed_official 610:813dcc80987e 353 /**
mbed_official 610:813dcc80987e 354 * @}
mbed_official 610:813dcc80987e 355 */
mbed_official 610:813dcc80987e 356
mbed_official 610:813dcc80987e 357 /* Exported functions --------------------------------------------------------*/
mbed_official 610:813dcc80987e 358 /** @defgroup SWPMI_Exported_Functions SWPMI Exported Functions
mbed_official 610:813dcc80987e 359 * @{
mbed_official 610:813dcc80987e 360 */
mbed_official 610:813dcc80987e 361 /* Initialization/de-initialization functions ********************************/
mbed_official 610:813dcc80987e 362 HAL_StatusTypeDef HAL_SWPMI_Init(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 363 HAL_StatusTypeDef HAL_SWPMI_DeInit(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 364 void HAL_SWPMI_MspInit(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 365 void HAL_SWPMI_MspDeInit(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 366
mbed_official 610:813dcc80987e 367 /* IO operation functions *****************************************************/
mbed_official 610:813dcc80987e 368 HAL_StatusTypeDef HAL_SWPMI_Transmit(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 610:813dcc80987e 369 HAL_StatusTypeDef HAL_SWPMI_Receive(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 610:813dcc80987e 370 HAL_StatusTypeDef HAL_SWPMI_Transmit_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size);
mbed_official 610:813dcc80987e 371 HAL_StatusTypeDef HAL_SWPMI_Receive_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size);
mbed_official 610:813dcc80987e 372 HAL_StatusTypeDef HAL_SWPMI_Transmit_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size);
mbed_official 610:813dcc80987e 373 HAL_StatusTypeDef HAL_SWPMI_Receive_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size);
mbed_official 610:813dcc80987e 374 HAL_StatusTypeDef HAL_SWPMI_DMAStop(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 375 HAL_StatusTypeDef HAL_SWPMI_EnableLoopback(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 376 HAL_StatusTypeDef HAL_SWPMI_DisableLoopback(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 377 void HAL_SWPMI_IRQHandler(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 378 void HAL_SWPMI_TxCpltCallback(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 379 void HAL_SWPMI_TxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 380 void HAL_SWPMI_RxCpltCallback(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 381 void HAL_SWPMI_RxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 382 void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 383
mbed_official 610:813dcc80987e 384 /* Peripheral Control and State functions ************************************/
mbed_official 610:813dcc80987e 385 HAL_SWPMI_StateTypeDef HAL_SWPMI_GetState(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 386 uint32_t HAL_SWPMI_GetError(SWPMI_HandleTypeDef *hswpmi);
mbed_official 610:813dcc80987e 387
mbed_official 610:813dcc80987e 388 /**
mbed_official 610:813dcc80987e 389 * @}
mbed_official 610:813dcc80987e 390 */
mbed_official 610:813dcc80987e 391
mbed_official 610:813dcc80987e 392 /* Private types -------------------------------------------------------------*/
mbed_official 610:813dcc80987e 393 /** @defgroup SWPMI_Private_Types SWPMI Private Types
mbed_official 610:813dcc80987e 394 * @{
mbed_official 610:813dcc80987e 395 */
mbed_official 610:813dcc80987e 396
mbed_official 610:813dcc80987e 397 /**
mbed_official 610:813dcc80987e 398 * @}
mbed_official 610:813dcc80987e 399 */
mbed_official 610:813dcc80987e 400
mbed_official 610:813dcc80987e 401 /* Private variables ---------------------------------------------------------*/
mbed_official 610:813dcc80987e 402 /** @defgroup SWPMI_Private_Variables SWPMI Private Variables
mbed_official 610:813dcc80987e 403 * @{
mbed_official 610:813dcc80987e 404 */
mbed_official 610:813dcc80987e 405
mbed_official 610:813dcc80987e 406 /**
mbed_official 610:813dcc80987e 407 * @}
mbed_official 610:813dcc80987e 408 */
mbed_official 610:813dcc80987e 409
mbed_official 610:813dcc80987e 410 /* Private constants ---------------------------------------------------------*/
mbed_official 610:813dcc80987e 411 /** @defgroup SWPMI_Private_Constants SWPMI Private Constants
mbed_official 610:813dcc80987e 412 * @{
mbed_official 610:813dcc80987e 413 */
mbed_official 610:813dcc80987e 414
mbed_official 610:813dcc80987e 415 /**
mbed_official 610:813dcc80987e 416 * @}
mbed_official 610:813dcc80987e 417 */
mbed_official 610:813dcc80987e 418
mbed_official 610:813dcc80987e 419 /* Private macros ------------------------------------------------------------*/
mbed_official 610:813dcc80987e 420 /** @defgroup SWPMI_Private_Macros SWPMI Private Macros
mbed_official 610:813dcc80987e 421 * @{
mbed_official 610:813dcc80987e 422 */
mbed_official 610:813dcc80987e 423
mbed_official 610:813dcc80987e 424
mbed_official 610:813dcc80987e 425 #define IS_SWPMI_VOLTAGE_CLASS(__CLASS__) (((__CLASS__) == SWPMI_VOLTAGE_CLASS_C) || \
mbed_official 610:813dcc80987e 426 ((__CLASS__) == SWPMI_VOLTAGE_CLASS_B))
mbed_official 610:813dcc80987e 427
mbed_official 610:813dcc80987e 428 #define IS_SWPMI_BITRATE_VALUE(__VALUE__) (((__VALUE__) <= 63))
mbed_official 610:813dcc80987e 429
mbed_official 610:813dcc80987e 430
mbed_official 610:813dcc80987e 431 #define IS_SWPMI_TX_BUFFERING_MODE(__MODE__) (((__MODE__) == SWPMI_TX_NO_SOFTWAREBUFFER) || \
mbed_official 610:813dcc80987e 432 ((__MODE__) == SWPMI_TX_MULTI_SOFTWAREBUFFER))
mbed_official 610:813dcc80987e 433
mbed_official 610:813dcc80987e 434
mbed_official 610:813dcc80987e 435 #define IS_SWPMI_RX_BUFFERING_MODE(__MODE__) (((__MODE__) == SWPMI_RX_NO_SOFTWAREBUFFER) || \
mbed_official 610:813dcc80987e 436 ((__MODE__) == SWPMI_RX_MULTI_SOFTWAREBUFFER))
mbed_official 610:813dcc80987e 437
mbed_official 610:813dcc80987e 438 /**
mbed_official 610:813dcc80987e 439 * @}
mbed_official 610:813dcc80987e 440 */
mbed_official 610:813dcc80987e 441
mbed_official 610:813dcc80987e 442 /**
mbed_official 610:813dcc80987e 443 * @}
mbed_official 610:813dcc80987e 444 */
mbed_official 610:813dcc80987e 445
mbed_official 610:813dcc80987e 446 /**
mbed_official 610:813dcc80987e 447 * @}
mbed_official 610:813dcc80987e 448 */
mbed_official 610:813dcc80987e 449
mbed_official 610:813dcc80987e 450 #ifdef __cplusplus
mbed_official 610:813dcc80987e 451 }
mbed_official 610:813dcc80987e 452 #endif
mbed_official 610:813dcc80987e 453
mbed_official 610:813dcc80987e 454 #endif /* __STM32L4xx_HAL_SWPMI_H */
mbed_official 610:813dcc80987e 455
mbed_official 610:813dcc80987e 456 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/