mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Thu Jul 02 16:30:08 2015 +0100
Revision:
581:39197bcd20f2
Parent:
489:119543c9f674
Synchronized with git revision ae2d3cdffe70184eb8736d94f76c45c93f4b7724

Full URL: https://github.com/mbedmicro/mbed/commit/ae2d3cdffe70184eb8736d94f76c45c93f4b7724/

Make it possible to build the core mbed library with yotta

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 489:119543c9f674 1 /**
mbed_official 489:119543c9f674 2 ******************************************************************************
mbed_official 489:119543c9f674 3 * @file stm32f1xx_hal_can.h
mbed_official 489:119543c9f674 4 * @author MCD Application Team
mbed_official 489:119543c9f674 5 * @version V1.0.0
mbed_official 489:119543c9f674 6 * @date 15-December-2014
mbed_official 489:119543c9f674 7 * @brief Header file of CAN HAL module.
mbed_official 489:119543c9f674 8 ******************************************************************************
mbed_official 489:119543c9f674 9 * @attention
mbed_official 489:119543c9f674 10 *
mbed_official 489:119543c9f674 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 489:119543c9f674 12 *
mbed_official 489:119543c9f674 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 489:119543c9f674 14 * are permitted provided that the following conditions are met:
mbed_official 489:119543c9f674 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 489:119543c9f674 16 * this list of conditions and the following disclaimer.
mbed_official 489:119543c9f674 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 489:119543c9f674 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 489:119543c9f674 19 * and/or other materials provided with the distribution.
mbed_official 489:119543c9f674 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 489:119543c9f674 21 * may be used to endorse or promote products derived from this software
mbed_official 489:119543c9f674 22 * without specific prior written permission.
mbed_official 489:119543c9f674 23 *
mbed_official 489:119543c9f674 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 489:119543c9f674 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 489:119543c9f674 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 489:119543c9f674 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 489:119543c9f674 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 489:119543c9f674 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 489:119543c9f674 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 489:119543c9f674 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 489:119543c9f674 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 489:119543c9f674 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 489:119543c9f674 34 *
mbed_official 489:119543c9f674 35 ******************************************************************************
mbed_official 489:119543c9f674 36 */
mbed_official 489:119543c9f674 37
mbed_official 489:119543c9f674 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 489:119543c9f674 39 #ifndef __stm32f1xx_CAN_H
mbed_official 489:119543c9f674 40 #define __stm32f1xx_CAN_H
mbed_official 489:119543c9f674 41
mbed_official 489:119543c9f674 42 #ifdef __cplusplus
mbed_official 489:119543c9f674 43 extern "C" {
mbed_official 489:119543c9f674 44 #endif
mbed_official 489:119543c9f674 45
mbed_official 489:119543c9f674 46 #if defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || \
mbed_official 489:119543c9f674 47 defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC)
mbed_official 489:119543c9f674 48
mbed_official 489:119543c9f674 49 /* Includes ------------------------------------------------------------------*/
mbed_official 489:119543c9f674 50 #include "stm32f1xx_hal_def.h"
mbed_official 489:119543c9f674 51
mbed_official 489:119543c9f674 52 /** @addtogroup STM32F1xx_HAL_Driver
mbed_official 489:119543c9f674 53 * @{
mbed_official 489:119543c9f674 54 */
mbed_official 489:119543c9f674 55
mbed_official 489:119543c9f674 56 /** @addtogroup CAN
mbed_official 489:119543c9f674 57 * @{
mbed_official 489:119543c9f674 58 */
mbed_official 489:119543c9f674 59
mbed_official 489:119543c9f674 60 /* Exported types ------------------------------------------------------------*/
mbed_official 489:119543c9f674 61 /** @defgroup CAN_Exported_Types CAN Exported Types
mbed_official 489:119543c9f674 62 * @{
mbed_official 489:119543c9f674 63 */
mbed_official 489:119543c9f674 64 /**
mbed_official 489:119543c9f674 65 * @brief HAL State structures definition
mbed_official 489:119543c9f674 66 */
mbed_official 489:119543c9f674 67 typedef enum
mbed_official 489:119543c9f674 68 {
mbed_official 489:119543c9f674 69 HAL_CAN_STATE_RESET = 0x00, /*!< CAN not yet initialized or disabled */
mbed_official 489:119543c9f674 70 HAL_CAN_STATE_READY = 0x01, /*!< CAN initialized and ready for use */
mbed_official 489:119543c9f674 71 HAL_CAN_STATE_BUSY = 0x02, /*!< CAN process is ongoing */
mbed_official 489:119543c9f674 72 HAL_CAN_STATE_BUSY_TX = 0x12, /*!< CAN process is ongoing */
mbed_official 489:119543c9f674 73 HAL_CAN_STATE_BUSY_RX = 0x22, /*!< CAN process is ongoing */
mbed_official 489:119543c9f674 74 HAL_CAN_STATE_BUSY_TX_RX = 0x32, /*!< CAN process is ongoing */
mbed_official 489:119543c9f674 75 HAL_CAN_STATE_TIMEOUT = 0x03, /*!< CAN in Timeout state */
mbed_official 489:119543c9f674 76 HAL_CAN_STATE_ERROR = 0x04 /*!< CAN error state */
mbed_official 489:119543c9f674 77
mbed_official 489:119543c9f674 78 }HAL_CAN_StateTypeDef;
mbed_official 489:119543c9f674 79
mbed_official 489:119543c9f674 80
mbed_official 489:119543c9f674 81 /**
mbed_official 489:119543c9f674 82 * @brief CAN init structure definition
mbed_official 489:119543c9f674 83 */
mbed_official 489:119543c9f674 84 typedef struct
mbed_official 489:119543c9f674 85 {
mbed_official 489:119543c9f674 86 uint32_t Prescaler; /*!< Specifies the length of a time quantum.
mbed_official 489:119543c9f674 87 This parameter must be a number between Min_Data = 1 and Max_Data = 1024. */
mbed_official 489:119543c9f674 88
mbed_official 489:119543c9f674 89 uint32_t Mode; /*!< Specifies the CAN operating mode.
mbed_official 489:119543c9f674 90 This parameter can be a value of @ref CAN_operating_mode */
mbed_official 489:119543c9f674 91
mbed_official 489:119543c9f674 92 uint32_t SJW; /*!< Specifies the maximum number of time quanta
mbed_official 489:119543c9f674 93 the CAN hardware is allowed to lengthen or
mbed_official 489:119543c9f674 94 shorten a bit to perform resynchronization.
mbed_official 489:119543c9f674 95 This parameter can be a value of @ref CAN_synchronisation_jump_width */
mbed_official 489:119543c9f674 96
mbed_official 489:119543c9f674 97 uint32_t BS1; /*!< Specifies the number of time quanta in Bit Segment 1.
mbed_official 489:119543c9f674 98 This parameter can be a value of @ref CAN_time_quantum_in_bit_segment_1 */
mbed_official 489:119543c9f674 99
mbed_official 489:119543c9f674 100 uint32_t BS2; /*!< Specifies the number of time quanta in Bit Segment 2.
mbed_official 489:119543c9f674 101 This parameter can be a value of @ref CAN_time_quantum_in_bit_segment_2 */
mbed_official 489:119543c9f674 102
mbed_official 489:119543c9f674 103 uint32_t TTCM; /*!< Enable or disable the time triggered communication mode.
mbed_official 489:119543c9f674 104 This parameter can be set to ENABLE or DISABLE. */
mbed_official 489:119543c9f674 105
mbed_official 489:119543c9f674 106 uint32_t ABOM; /*!< Enable or disable the automatic bus-off management.
mbed_official 489:119543c9f674 107 This parameter can be set to ENABLE or DISABLE. */
mbed_official 489:119543c9f674 108
mbed_official 489:119543c9f674 109 uint32_t AWUM; /*!< Enable or disable the automatic wake-up mode.
mbed_official 489:119543c9f674 110 This parameter can be set to ENABLE or DISABLE. */
mbed_official 489:119543c9f674 111
mbed_official 489:119543c9f674 112 uint32_t NART; /*!< Enable or disable the non-automatic retransmission mode.
mbed_official 489:119543c9f674 113 This parameter can be set to ENABLE or DISABLE. */
mbed_official 489:119543c9f674 114
mbed_official 489:119543c9f674 115 uint32_t RFLM; /*!< Enable or disable the Receive FIFO Locked mode.
mbed_official 489:119543c9f674 116 This parameter can be set to ENABLE or DISABLE. */
mbed_official 489:119543c9f674 117
mbed_official 489:119543c9f674 118 uint32_t TXFP; /*!< Enable or disable the transmit FIFO priority.
mbed_official 489:119543c9f674 119 This parameter can be set to ENABLE or DISABLE. */
mbed_official 489:119543c9f674 120 }CAN_InitTypeDef;
mbed_official 489:119543c9f674 121
mbed_official 489:119543c9f674 122 /**
mbed_official 489:119543c9f674 123 * @brief CAN Tx message structure definition
mbed_official 489:119543c9f674 124 */
mbed_official 489:119543c9f674 125 typedef struct
mbed_official 489:119543c9f674 126 {
mbed_official 489:119543c9f674 127 uint32_t StdId; /*!< Specifies the standard identifier.
mbed_official 489:119543c9f674 128 This parameter must be a number between Min_Data = 0 and Max_Data = 0x7FF. */
mbed_official 489:119543c9f674 129
mbed_official 489:119543c9f674 130 uint32_t ExtId; /*!< Specifies the extended identifier.
mbed_official 489:119543c9f674 131 This parameter must be a number between Min_Data = 0 and Max_Data = 0x1FFFFFFF. */
mbed_official 489:119543c9f674 132
mbed_official 489:119543c9f674 133 uint32_t IDE; /*!< Specifies the type of identifier for the message that will be transmitted.
mbed_official 489:119543c9f674 134 This parameter can be a value of @ref CAN_identifier_type */
mbed_official 489:119543c9f674 135
mbed_official 489:119543c9f674 136 uint32_t RTR; /*!< Specifies the type of frame for the message that will be transmitted.
mbed_official 489:119543c9f674 137 This parameter can be a value of @ref CAN_remote_transmission_request */
mbed_official 489:119543c9f674 138
mbed_official 489:119543c9f674 139 uint32_t DLC; /*!< Specifies the length of the frame that will be transmitted.
mbed_official 489:119543c9f674 140 This parameter must be a number between Min_Data = 0 and Max_Data = 8. */
mbed_official 489:119543c9f674 141
mbed_official 489:119543c9f674 142 uint32_t Data[8]; /*!< Contains the data to be transmitted.
mbed_official 489:119543c9f674 143 This parameter must be a number between Min_Data = 0 and Max_Data = 0xFF. */
mbed_official 489:119543c9f674 144
mbed_official 489:119543c9f674 145 }CanTxMsgTypeDef;
mbed_official 489:119543c9f674 146
mbed_official 489:119543c9f674 147 /**
mbed_official 489:119543c9f674 148 * @brief CAN Rx message structure definition
mbed_official 489:119543c9f674 149 */
mbed_official 489:119543c9f674 150 typedef struct
mbed_official 489:119543c9f674 151 {
mbed_official 489:119543c9f674 152 uint32_t StdId; /*!< Specifies the standard identifier.
mbed_official 489:119543c9f674 153 This parameter must be a number between Min_Data = 0 and Max_Data = 0x7FF. */
mbed_official 489:119543c9f674 154
mbed_official 489:119543c9f674 155 uint32_t ExtId; /*!< Specifies the extended identifier.
mbed_official 489:119543c9f674 156 This parameter must be a number between Min_Data = 0 and Max_Data = 0x1FFFFFFF. */
mbed_official 489:119543c9f674 157
mbed_official 489:119543c9f674 158 uint32_t IDE; /*!< Specifies the type of identifier for the message that will be received.
mbed_official 489:119543c9f674 159 This parameter can be a value of @ref CAN_identifier_type */
mbed_official 489:119543c9f674 160
mbed_official 489:119543c9f674 161 uint32_t RTR; /*!< Specifies the type of frame for the received message.
mbed_official 489:119543c9f674 162 This parameter can be a value of @ref CAN_remote_transmission_request */
mbed_official 489:119543c9f674 163
mbed_official 489:119543c9f674 164 uint32_t DLC; /*!< Specifies the length of the frame that will be received.
mbed_official 489:119543c9f674 165 This parameter must be a number between Min_Data = 0 and Max_Data = 8. */
mbed_official 489:119543c9f674 166
mbed_official 489:119543c9f674 167 uint32_t Data[8]; /*!< Contains the data to be received.
mbed_official 489:119543c9f674 168 This parameter must be a number between Min_Data = 0 and Max_Data = 0xFF. */
mbed_official 489:119543c9f674 169
mbed_official 489:119543c9f674 170 uint32_t FMI; /*!< Specifies the index of the filter the message stored in the mailbox passes through.
mbed_official 489:119543c9f674 171 This parameter must be a number between Min_Data = 0 and Max_Data = 0xFF. */
mbed_official 489:119543c9f674 172
mbed_official 489:119543c9f674 173 uint32_t FIFONumber; /*!< Specifies the receive FIFO number.
mbed_official 489:119543c9f674 174 This parameter can be a value of @ref CAN_receive_FIFO_number_constants */
mbed_official 489:119543c9f674 175
mbed_official 489:119543c9f674 176 }CanRxMsgTypeDef;
mbed_official 489:119543c9f674 177
mbed_official 489:119543c9f674 178 /**
mbed_official 489:119543c9f674 179 * @brief CAN handle Structure definition
mbed_official 489:119543c9f674 180 */
mbed_official 489:119543c9f674 181 typedef struct
mbed_official 489:119543c9f674 182 {
mbed_official 489:119543c9f674 183 CAN_TypeDef *Instance; /*!< Register base address */
mbed_official 489:119543c9f674 184
mbed_official 489:119543c9f674 185 CAN_InitTypeDef Init; /*!< CAN required parameters */
mbed_official 489:119543c9f674 186
mbed_official 489:119543c9f674 187 CanTxMsgTypeDef* pTxMsg; /*!< Pointer to transmit structure */
mbed_official 489:119543c9f674 188
mbed_official 489:119543c9f674 189 CanRxMsgTypeDef* pRxMsg; /*!< Pointer to reception structure */
mbed_official 489:119543c9f674 190
mbed_official 489:119543c9f674 191 HAL_LockTypeDef Lock; /*!< CAN locking object */
mbed_official 489:119543c9f674 192
mbed_official 489:119543c9f674 193 __IO HAL_CAN_StateTypeDef State; /*!< CAN communication state */
mbed_official 489:119543c9f674 194
mbed_official 489:119543c9f674 195 __IO uint32_t ErrorCode; /*!< CAN Error code */
mbed_official 489:119543c9f674 196
mbed_official 489:119543c9f674 197 }CAN_HandleTypeDef;
mbed_official 489:119543c9f674 198 /**
mbed_official 489:119543c9f674 199 * @}
mbed_official 489:119543c9f674 200 */
mbed_official 489:119543c9f674 201 /* Exported constants --------------------------------------------------------*/
mbed_official 489:119543c9f674 202
mbed_official 489:119543c9f674 203 /** @defgroup CAN_Exported_Constants CAN Exported Constants
mbed_official 489:119543c9f674 204 * @{
mbed_official 489:119543c9f674 205 */
mbed_official 489:119543c9f674 206
mbed_official 489:119543c9f674 207 /** @defgroup CAN_Error_Code CAN Error Code
mbed_official 489:119543c9f674 208 * @{
mbed_official 489:119543c9f674 209 */
mbed_official 489:119543c9f674 210
mbed_official 489:119543c9f674 211
mbed_official 489:119543c9f674 212 #define HAL_CAN_ERROR_NONE ((uint32_t)0x00) /*!< No error */
mbed_official 489:119543c9f674 213 #define HAL_CAN_ERROR_EWG ((uint32_t)0x01) /*!< EWG error */
mbed_official 489:119543c9f674 214 #define HAL_CAN_ERROR_EPV ((uint32_t)0x02) /*!< EPV error */
mbed_official 489:119543c9f674 215 #define HAL_CAN_ERROR_BOF ((uint32_t)0x04) /*!< BOF error */
mbed_official 489:119543c9f674 216 #define HAL_CAN_ERROR_STF ((uint32_t)0x08) /*!< Stuff error */
mbed_official 489:119543c9f674 217 #define HAL_CAN_ERROR_FOR ((uint32_t)0x10) /*!< Form error */
mbed_official 489:119543c9f674 218 #define HAL_CAN_ERROR_ACK ((uint32_t)0x20) /*!< Acknowledgment error */
mbed_official 489:119543c9f674 219 #define HAL_CAN_ERROR_BR ((uint32_t)0x40) /*!< Bit recessive */
mbed_official 489:119543c9f674 220 #define HAL_CAN_ERROR_BD ((uint32_t)0x80) /*!< LEC dominant */
mbed_official 489:119543c9f674 221 #define HAL_CAN_ERROR_CRC ((uint32_t)0x100) /*!< LEC transfer error */
mbed_official 489:119543c9f674 222
mbed_official 489:119543c9f674 223
mbed_official 489:119543c9f674 224 /**
mbed_official 489:119543c9f674 225 * @}
mbed_official 489:119543c9f674 226 */
mbed_official 489:119543c9f674 227
mbed_official 489:119543c9f674 228
mbed_official 489:119543c9f674 229 /** @defgroup CAN_InitStatus CAN initialization Status
mbed_official 489:119543c9f674 230 * @{
mbed_official 489:119543c9f674 231 */
mbed_official 489:119543c9f674 232 #define CAN_INITSTATUS_FAILED ((uint32_t)0x00000000) /*!< CAN initialization failed */
mbed_official 489:119543c9f674 233 #define CAN_INITSTATUS_SUCCESS ((uint32_t)0x00000001) /*!< CAN initialization OK */
mbed_official 489:119543c9f674 234 /**
mbed_official 489:119543c9f674 235 * @}
mbed_official 489:119543c9f674 236 */
mbed_official 489:119543c9f674 237
mbed_official 489:119543c9f674 238 /** @defgroup CAN_operating_mode CAN Operating Mode
mbed_official 489:119543c9f674 239 * @{
mbed_official 489:119543c9f674 240 */
mbed_official 489:119543c9f674 241 #define CAN_MODE_NORMAL ((uint32_t)0x00000000) /*!< Normal mode */
mbed_official 489:119543c9f674 242 #define CAN_MODE_LOOPBACK ((uint32_t)CAN_BTR_LBKM) /*!< Loopback mode */
mbed_official 489:119543c9f674 243 #define CAN_MODE_SILENT ((uint32_t)CAN_BTR_SILM) /*!< Silent mode */
mbed_official 489:119543c9f674 244 #define CAN_MODE_SILENT_LOOPBACK ((uint32_t)(CAN_BTR_LBKM | CAN_BTR_SILM)) /*!< Loopback combined with silent mode */
mbed_official 489:119543c9f674 245
mbed_official 489:119543c9f674 246 /**
mbed_official 489:119543c9f674 247 * @}
mbed_official 489:119543c9f674 248 */
mbed_official 489:119543c9f674 249
mbed_official 489:119543c9f674 250
mbed_official 489:119543c9f674 251 /** @defgroup CAN_synchronisation_jump_width CAN Synchronization Jump Width
mbed_official 489:119543c9f674 252 * @{
mbed_official 489:119543c9f674 253 */
mbed_official 489:119543c9f674 254 #define CAN_SJW_1TQ ((uint32_t)0x00000000) /*!< 1 time quantum */
mbed_official 489:119543c9f674 255 #define CAN_SJW_2TQ ((uint32_t)CAN_BTR_SJW_0) /*!< 2 time quantum */
mbed_official 489:119543c9f674 256 #define CAN_SJW_3TQ ((uint32_t)CAN_BTR_SJW_1) /*!< 3 time quantum */
mbed_official 489:119543c9f674 257 #define CAN_SJW_4TQ ((uint32_t)CAN_BTR_SJW) /*!< 4 time quantum */
mbed_official 489:119543c9f674 258
mbed_official 489:119543c9f674 259 /**
mbed_official 489:119543c9f674 260 * @}
mbed_official 489:119543c9f674 261 */
mbed_official 489:119543c9f674 262
mbed_official 489:119543c9f674 263 /** @defgroup CAN_time_quantum_in_bit_segment_1 CAN Time Quantum in Bit Segment 1
mbed_official 489:119543c9f674 264 * @{
mbed_official 489:119543c9f674 265 */
mbed_official 489:119543c9f674 266 #define CAN_BS1_1TQ ((uint32_t)0x00000000) /*!< 1 time quantum */
mbed_official 489:119543c9f674 267 #define CAN_BS1_2TQ ((uint32_t)CAN_BTR_TS1_0) /*!< 2 time quantum */
mbed_official 489:119543c9f674 268 #define CAN_BS1_3TQ ((uint32_t)CAN_BTR_TS1_1) /*!< 3 time quantum */
mbed_official 489:119543c9f674 269 #define CAN_BS1_4TQ ((uint32_t)(CAN_BTR_TS1_1 | CAN_BTR_TS1_0)) /*!< 4 time quantum */
mbed_official 489:119543c9f674 270 #define CAN_BS1_5TQ ((uint32_t)CAN_BTR_TS1_2) /*!< 5 time quantum */
mbed_official 489:119543c9f674 271 #define CAN_BS1_6TQ ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_0)) /*!< 6 time quantum */
mbed_official 489:119543c9f674 272 #define CAN_BS1_7TQ ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_1)) /*!< 7 time quantum */
mbed_official 489:119543c9f674 273 #define CAN_BS1_8TQ ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_1 | CAN_BTR_TS1_0)) /*!< 8 time quantum */
mbed_official 489:119543c9f674 274 #define CAN_BS1_9TQ ((uint32_t)CAN_BTR_TS1_3) /*!< 9 time quantum */
mbed_official 489:119543c9f674 275 #define CAN_BS1_10TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_0)) /*!< 10 time quantum */
mbed_official 489:119543c9f674 276 #define CAN_BS1_11TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_1)) /*!< 11 time quantum */
mbed_official 489:119543c9f674 277 #define CAN_BS1_12TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_1 | CAN_BTR_TS1_0)) /*!< 12 time quantum */
mbed_official 489:119543c9f674 278 #define CAN_BS1_13TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2)) /*!< 13 time quantum */
mbed_official 489:119543c9f674 279 #define CAN_BS1_14TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2 | CAN_BTR_TS1_0)) /*!< 14 time quantum */
mbed_official 489:119543c9f674 280 #define CAN_BS1_15TQ ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2 | CAN_BTR_TS1_1)) /*!< 15 time quantum */
mbed_official 489:119543c9f674 281 #define CAN_BS1_16TQ ((uint32_t)CAN_BTR_TS1) /*!< 16 time quantum */
mbed_official 489:119543c9f674 282
mbed_official 489:119543c9f674 283 /**
mbed_official 489:119543c9f674 284 * @}
mbed_official 489:119543c9f674 285 */
mbed_official 489:119543c9f674 286
mbed_official 489:119543c9f674 287 /** @defgroup CAN_time_quantum_in_bit_segment_2 CAN Time Quantum in Bit Segment 2
mbed_official 489:119543c9f674 288 * @{
mbed_official 489:119543c9f674 289 */
mbed_official 489:119543c9f674 290 #define CAN_BS2_1TQ ((uint32_t)0x00000000) /*!< 1 time quantum */
mbed_official 489:119543c9f674 291 #define CAN_BS2_2TQ ((uint32_t)CAN_BTR_TS2_0) /*!< 2 time quantum */
mbed_official 489:119543c9f674 292 #define CAN_BS2_3TQ ((uint32_t)CAN_BTR_TS2_1) /*!< 3 time quantum */
mbed_official 489:119543c9f674 293 #define CAN_BS2_4TQ ((uint32_t)(CAN_BTR_TS2_1 | CAN_BTR_TS2_0)) /*!< 4 time quantum */
mbed_official 489:119543c9f674 294 #define CAN_BS2_5TQ ((uint32_t)CAN_BTR_TS2_2) /*!< 5 time quantum */
mbed_official 489:119543c9f674 295 #define CAN_BS2_6TQ ((uint32_t)(CAN_BTR_TS2_2 | CAN_BTR_TS2_0)) /*!< 6 time quantum */
mbed_official 489:119543c9f674 296 #define CAN_BS2_7TQ ((uint32_t)(CAN_BTR_TS2_2 | CAN_BTR_TS2_1)) /*!< 7 time quantum */
mbed_official 489:119543c9f674 297 #define CAN_BS2_8TQ ((uint32_t)CAN_BTR_TS2) /*!< 8 time quantum */
mbed_official 489:119543c9f674 298
mbed_official 489:119543c9f674 299 /**
mbed_official 489:119543c9f674 300 * @}
mbed_official 489:119543c9f674 301 */
mbed_official 489:119543c9f674 302
mbed_official 489:119543c9f674 303 /** @defgroup CAN_filter_mode CAN Filter Mode
mbed_official 489:119543c9f674 304 * @{
mbed_official 489:119543c9f674 305 */
mbed_official 489:119543c9f674 306 #define CAN_FILTERMODE_IDMASK ((uint8_t)0x00) /*!< Identifier mask mode */
mbed_official 489:119543c9f674 307 #define CAN_FILTERMODE_IDLIST ((uint8_t)0x01) /*!< Identifier list mode */
mbed_official 489:119543c9f674 308
mbed_official 489:119543c9f674 309 /**
mbed_official 489:119543c9f674 310 * @}
mbed_official 489:119543c9f674 311 */
mbed_official 489:119543c9f674 312
mbed_official 489:119543c9f674 313 /** @defgroup CAN_filter_scale CAN Filter Scale
mbed_official 489:119543c9f674 314 * @{
mbed_official 489:119543c9f674 315 */
mbed_official 489:119543c9f674 316 #define CAN_FILTERSCALE_16BIT ((uint8_t)0x00) /*!< Two 16-bit filters */
mbed_official 489:119543c9f674 317 #define CAN_FILTERSCALE_32BIT ((uint8_t)0x01) /*!< One 32-bit filter */
mbed_official 489:119543c9f674 318
mbed_official 489:119543c9f674 319 /**
mbed_official 489:119543c9f674 320 * @}
mbed_official 489:119543c9f674 321 */
mbed_official 489:119543c9f674 322
mbed_official 489:119543c9f674 323 /** @defgroup CAN_filter_FIFO CAN Filter FIFO
mbed_official 489:119543c9f674 324 * @{
mbed_official 489:119543c9f674 325 */
mbed_official 489:119543c9f674 326 #define CAN_FILTER_FIFO0 ((uint8_t)0x00) /*!< Filter FIFO 0 assignment for filter x */
mbed_official 489:119543c9f674 327 #define CAN_FILTER_FIFO1 ((uint8_t)0x01) /*!< Filter FIFO 1 assignment for filter x */
mbed_official 489:119543c9f674 328
mbed_official 489:119543c9f674 329
mbed_official 489:119543c9f674 330 /**
mbed_official 489:119543c9f674 331 * @}
mbed_official 489:119543c9f674 332 */
mbed_official 489:119543c9f674 333
mbed_official 489:119543c9f674 334 /** @defgroup CAN_identifier_type CAN Identifier Type
mbed_official 489:119543c9f674 335 * @{
mbed_official 489:119543c9f674 336 */
mbed_official 489:119543c9f674 337 #define CAN_ID_STD ((uint32_t)0x00000000) /*!< Standard Id */
mbed_official 489:119543c9f674 338 #define CAN_ID_EXT ((uint32_t)0x00000004) /*!< Extended Id */
mbed_official 489:119543c9f674 339
mbed_official 489:119543c9f674 340 /**
mbed_official 489:119543c9f674 341 * @}
mbed_official 489:119543c9f674 342 */
mbed_official 489:119543c9f674 343
mbed_official 489:119543c9f674 344 /** @defgroup CAN_remote_transmission_request CAN Remote Transmission Request
mbed_official 489:119543c9f674 345 * @{
mbed_official 489:119543c9f674 346 */
mbed_official 489:119543c9f674 347 #define CAN_RTR_DATA ((uint32_t)0x00000000) /*!< Data frame */
mbed_official 489:119543c9f674 348 #define CAN_RTR_REMOTE ((uint32_t)0x00000002) /*!< Remote frame */
mbed_official 489:119543c9f674 349
mbed_official 489:119543c9f674 350 /**
mbed_official 489:119543c9f674 351 * @}
mbed_official 489:119543c9f674 352 */
mbed_official 489:119543c9f674 353
mbed_official 489:119543c9f674 354 /** @defgroup CAN_transmit_constants CAN Transmit Constants
mbed_official 489:119543c9f674 355 * @{
mbed_official 489:119543c9f674 356 */
mbed_official 489:119543c9f674 357 #define CAN_TXSTATUS_NOMAILBOX ((uint8_t)0x04) /*!< CAN cell did not provide CAN_TxStatus_NoMailBox */
mbed_official 489:119543c9f674 358
mbed_official 489:119543c9f674 359 /**
mbed_official 489:119543c9f674 360 * @}
mbed_official 489:119543c9f674 361 */
mbed_official 489:119543c9f674 362
mbed_official 489:119543c9f674 363 /** @defgroup CAN_receive_FIFO_number_constants CAN Receive FIFO Number
mbed_official 489:119543c9f674 364 * @{
mbed_official 489:119543c9f674 365 */
mbed_official 489:119543c9f674 366 #define CAN_FIFO0 ((uint8_t)0x00) /*!< CAN FIFO 0 used to receive */
mbed_official 489:119543c9f674 367 #define CAN_FIFO1 ((uint8_t)0x01) /*!< CAN FIFO 1 used to receive */
mbed_official 489:119543c9f674 368
mbed_official 489:119543c9f674 369 /**
mbed_official 489:119543c9f674 370 * @}
mbed_official 489:119543c9f674 371 */
mbed_official 489:119543c9f674 372
mbed_official 489:119543c9f674 373 /** @defgroup CAN_flags CAN Flags
mbed_official 489:119543c9f674 374 * @{
mbed_official 489:119543c9f674 375 */
mbed_official 489:119543c9f674 376 /* If the flag is 0x3XXXXXXX, it means that it can be used with CAN_GetFlagStatus()
mbed_official 489:119543c9f674 377 and CAN_ClearFlag() functions. */
mbed_official 489:119543c9f674 378 /* If the flag is 0x1XXXXXXX, it means that it can only be used with
mbed_official 489:119543c9f674 379 CAN_GetFlagStatus() function. */
mbed_official 489:119543c9f674 380
mbed_official 489:119543c9f674 381 /* Transmit Flags */
mbed_official 489:119543c9f674 382 #define CAN_FLAG_RQCP0 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_RQCP0_BIT_POSITION)) /*!< Request MailBox0 flag */
mbed_official 489:119543c9f674 383 #define CAN_FLAG_RQCP1 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_RQCP1_BIT_POSITION)) /*!< Request MailBox1 flag */
mbed_official 489:119543c9f674 384 #define CAN_FLAG_RQCP2 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_RQCP2_BIT_POSITION)) /*!< Request MailBox2 flag */
mbed_official 489:119543c9f674 385 #define CAN_FLAG_TXOK0 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_TXOK0_BIT_POSITION)) /*!< Transmission OK MailBox0 flag */
mbed_official 489:119543c9f674 386 #define CAN_FLAG_TXOK1 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_TXOK1_BIT_POSITION)) /*!< Transmission OK MailBox1 flag */
mbed_official 489:119543c9f674 387 #define CAN_FLAG_TXOK2 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_RQCP0_BIT_POSITION)) /*!< Transmission OK MailBox2 flag */
mbed_official 489:119543c9f674 388 #define CAN_FLAG_TME0 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_TME0_BIT_POSITION)) /*!< Transmit mailbox 0 empty flag */
mbed_official 489:119543c9f674 389 #define CAN_FLAG_TME1 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_TME1_BIT_POSITION)) /*!< Transmit mailbox 0 empty flag */
mbed_official 489:119543c9f674 390 #define CAN_FLAG_TME2 ((uint32_t)((TSR_REGISTER_INDEX << 8U) | CAN_TSR_TME2_BIT_POSITION)) /*!< Transmit mailbox 0 empty flag */
mbed_official 489:119543c9f674 391
mbed_official 489:119543c9f674 392 /* Receive Flags */
mbed_official 489:119543c9f674 393 #define CAN_FLAG_FF0 ((uint32_t)((RF0R_REGISTER_INDEX << 8U) | CAN_RF0R_FF0_BIT_POSITION)) /*!< FIFO 0 Full flag */
mbed_official 489:119543c9f674 394 #define CAN_FLAG_FOV0 ((uint32_t)((RF0R_REGISTER_INDEX << 8U) | CAN_RF0R_FOV0_BIT_POSITION)) /*!< FIFO 0 Overrun flag */
mbed_official 489:119543c9f674 395
mbed_official 489:119543c9f674 396 #define CAN_FLAG_FF1 ((uint32_t)((RF1R_REGISTER_INDEX << 8U) | CAN_RF1R_FF1_BIT_POSITION)) /*!< FIFO 1 Full flag */
mbed_official 489:119543c9f674 397 #define CAN_FLAG_FOV1 ((uint32_t)((RF1R_REGISTER_INDEX << 8U) | CAN_RF1R_FOV1_BIT_POSITION)) /*!< FIFO 1 Overrun flag */
mbed_official 489:119543c9f674 398
mbed_official 489:119543c9f674 399 /* Operating Mode Flags */
mbed_official 489:119543c9f674 400 #define CAN_FLAG_WKU ((uint32_t)((MSR_REGISTER_INDEX << 8U) | CAN_MSR_WKU_BIT_POSITION)) /*!< Wake up flag */
mbed_official 489:119543c9f674 401 #define CAN_FLAG_SLAK ((uint32_t)((MSR_REGISTER_INDEX << 8U) | CAN_MSR_SLAK_BIT_POSITION)) /*!< Sleep acknowledge flag */
mbed_official 489:119543c9f674 402 #define CAN_FLAG_SLAKI ((uint32_t)((MSR_REGISTER_INDEX << 8U) | CAN_MSR_SLAKI_BIT_POSITION)) /*!< Sleep acknowledge flag */
mbed_official 489:119543c9f674 403 /* @note When SLAK interrupt is disabled (SLKIE=0), no polling on SLAKI is possible.
mbed_official 489:119543c9f674 404 In this case the SLAK bit can be polled.*/
mbed_official 489:119543c9f674 405
mbed_official 489:119543c9f674 406 /* Error Flags */
mbed_official 489:119543c9f674 407 #define CAN_FLAG_EWG ((uint32_t)((ESR_REGISTER_INDEX << 8U) | CAN_ESR_EWG_BIT_POSITION)) /*!< Error warning flag */
mbed_official 489:119543c9f674 408 #define CAN_FLAG_EPV ((uint32_t)((ESR_REGISTER_INDEX << 8U) | CAN_ESR_EPV_BIT_POSITION)) /*!< Error passive flag */
mbed_official 489:119543c9f674 409 #define CAN_FLAG_BOF ((uint32_t)((ESR_REGISTER_INDEX << 8U) | CAN_ESR_BOF_BIT_POSITION)) /*!< Bus-Off flag */
mbed_official 489:119543c9f674 410
mbed_official 489:119543c9f674 411 /**
mbed_official 489:119543c9f674 412 * @}
mbed_official 489:119543c9f674 413 */
mbed_official 489:119543c9f674 414
mbed_official 489:119543c9f674 415
mbed_official 489:119543c9f674 416 /** @defgroup CAN_interrupts CAN Interrupts
mbed_official 489:119543c9f674 417 * @{
mbed_official 489:119543c9f674 418 */
mbed_official 489:119543c9f674 419 #define CAN_IT_TME ((uint32_t)CAN_IER_TMEIE) /*!< Transmit mailbox empty interrupt */
mbed_official 489:119543c9f674 420
mbed_official 489:119543c9f674 421 /* Receive Interrupts */
mbed_official 489:119543c9f674 422 #define CAN_IT_FMP0 ((uint32_t)CAN_IER_FMPIE0) /*!< FIFO 0 message pending interrupt */
mbed_official 489:119543c9f674 423 #define CAN_IT_FF0 ((uint32_t)CAN_IER_FFIE0) /*!< FIFO 0 full interrupt */
mbed_official 489:119543c9f674 424 #define CAN_IT_FOV0 ((uint32_t)CAN_IER_FOVIE0) /*!< FIFO 0 overrun interrupt */
mbed_official 489:119543c9f674 425 #define CAN_IT_FMP1 ((uint32_t)CAN_IER_FMPIE1) /*!< FIFO 1 message pending interrupt */
mbed_official 489:119543c9f674 426 #define CAN_IT_FF1 ((uint32_t)CAN_IER_FFIE1) /*!< FIFO 1 full interrupt */
mbed_official 489:119543c9f674 427 #define CAN_IT_FOV1 ((uint32_t)CAN_IER_FOVIE1) /*!< FIFO 1 overrun interrupt */
mbed_official 489:119543c9f674 428
mbed_official 489:119543c9f674 429 /* Operating Mode Interrupts */
mbed_official 489:119543c9f674 430 #define CAN_IT_WKU ((uint32_t)CAN_IER_WKUIE) /*!< Wake-up interrupt */
mbed_official 489:119543c9f674 431 #define CAN_IT_SLK ((uint32_t)CAN_IER_SLKIE) /*!< Sleep acknowledge interrupt */
mbed_official 489:119543c9f674 432
mbed_official 489:119543c9f674 433 /* Error Interrupts */
mbed_official 489:119543c9f674 434 #define CAN_IT_EWG ((uint32_t)CAN_IER_EWGIE) /*!< Error warning interrupt */
mbed_official 489:119543c9f674 435 #define CAN_IT_EPV ((uint32_t)CAN_IER_EPVIE) /*!< Error passive interrupt */
mbed_official 489:119543c9f674 436 #define CAN_IT_BOF ((uint32_t)CAN_IER_BOFIE) /*!< Bus-off interrupt */
mbed_official 489:119543c9f674 437 #define CAN_IT_LEC ((uint32_t)CAN_IER_LECIE) /*!< Last error code interrupt */
mbed_official 489:119543c9f674 438 #define CAN_IT_ERR ((uint32_t)CAN_IER_ERRIE) /*!< Error Interrupt */
mbed_official 489:119543c9f674 439
mbed_official 489:119543c9f674 440
mbed_official 489:119543c9f674 441 /**
mbed_official 489:119543c9f674 442 * @}
mbed_official 489:119543c9f674 443 */
mbed_official 489:119543c9f674 444
mbed_official 489:119543c9f674 445
mbed_official 489:119543c9f674 446
mbed_official 489:119543c9f674 447 /**
mbed_official 489:119543c9f674 448 * @}
mbed_official 489:119543c9f674 449 */
mbed_official 489:119543c9f674 450
mbed_official 489:119543c9f674 451 /** @defgroup CAN_Private_Constants CAN Private Constants
mbed_official 489:119543c9f674 452 * @{
mbed_official 489:119543c9f674 453 */
mbed_official 489:119543c9f674 454
mbed_official 489:119543c9f674 455 /* CAN intermediate shift values used for CAN flags */
mbed_official 489:119543c9f674 456 #define TSR_REGISTER_INDEX ((uint32_t)0x5)
mbed_official 489:119543c9f674 457 #define RF0R_REGISTER_INDEX ((uint32_t)0x2)
mbed_official 489:119543c9f674 458 #define RF1R_REGISTER_INDEX ((uint32_t)0x4)
mbed_official 489:119543c9f674 459 #define MSR_REGISTER_INDEX ((uint32_t)0x1)
mbed_official 489:119543c9f674 460 #define ESR_REGISTER_INDEX ((uint32_t)0x3)
mbed_official 489:119543c9f674 461
mbed_official 489:119543c9f674 462 /* CAN flags bits position into their respective register (TSR, RF0R, RF1R or MSR regsiters) */
mbed_official 489:119543c9f674 463 /* Transmit Flags */
mbed_official 489:119543c9f674 464 #define CAN_TSR_RQCP0_BIT_POSITION ((uint32_t)0x00000000)
mbed_official 489:119543c9f674 465 #define CAN_TSR_RQCP1_BIT_POSITION ((uint32_t)0x00000008)
mbed_official 489:119543c9f674 466 #define CAN_TSR_RQCP2_BIT_POSITION ((uint32_t)0x00000010)
mbed_official 489:119543c9f674 467 #define CAN_TSR_TXOK0_BIT_POSITION ((uint32_t)0x00000001)
mbed_official 489:119543c9f674 468 #define CAN_TSR_TXOK1_BIT_POSITION ((uint32_t)0x00000009)
mbed_official 489:119543c9f674 469 #define CAN_TSR_TXOK2_BIT_POSITION ((uint32_t)0x00000011)
mbed_official 489:119543c9f674 470 #define CAN_TSR_TME0_BIT_POSITION ((uint32_t)0x0000001A)
mbed_official 489:119543c9f674 471 #define CAN_TSR_TME1_BIT_POSITION ((uint32_t)0x0000001B)
mbed_official 489:119543c9f674 472 #define CAN_TSR_TME2_BIT_POSITION ((uint32_t)0x0000001C)
mbed_official 489:119543c9f674 473
mbed_official 489:119543c9f674 474 /* Receive Flags */
mbed_official 489:119543c9f674 475 #define CAN_RF0R_FF0_BIT_POSITION ((uint32_t)0x00000003)
mbed_official 489:119543c9f674 476 #define CAN_RF0R_FOV0_BIT_POSITION ((uint32_t)0x00000004)
mbed_official 489:119543c9f674 477
mbed_official 489:119543c9f674 478 #define CAN_RF1R_FF1_BIT_POSITION ((uint32_t)0x00000003)
mbed_official 489:119543c9f674 479 #define CAN_RF1R_FOV1_BIT_POSITION ((uint32_t)0x00000004)
mbed_official 489:119543c9f674 480
mbed_official 489:119543c9f674 481 /* Operating Mode Flags */
mbed_official 489:119543c9f674 482 #define CAN_MSR_WKU_BIT_POSITION ((uint32_t)0x00000003)
mbed_official 489:119543c9f674 483 #define CAN_MSR_SLAK_BIT_POSITION ((uint32_t)0x00000001)
mbed_official 489:119543c9f674 484 #define CAN_MSR_SLAKI_BIT_POSITION ((uint32_t)0x00000004)
mbed_official 489:119543c9f674 485
mbed_official 489:119543c9f674 486 /* Error Flags */
mbed_official 489:119543c9f674 487 #define CAN_ESR_EWG_BIT_POSITION ((uint32_t)0x00000000)
mbed_official 489:119543c9f674 488 #define CAN_ESR_EPV_BIT_POSITION ((uint32_t)0x00000001)
mbed_official 489:119543c9f674 489 #define CAN_ESR_BOF_BIT_POSITION ((uint32_t)0x00000002)
mbed_official 489:119543c9f674 490
mbed_official 489:119543c9f674 491 /* Mask used by macro to get/clear CAN flags*/
mbed_official 489:119543c9f674 492 #define CAN_FLAG_MASK ((uint32_t)0x000000FF)
mbed_official 489:119543c9f674 493
mbed_official 489:119543c9f674 494 /* Mailboxes definition */
mbed_official 489:119543c9f674 495 #define CAN_TXMAILBOX_0 ((uint8_t)0x00)
mbed_official 489:119543c9f674 496 #define CAN_TXMAILBOX_1 ((uint8_t)0x01)
mbed_official 489:119543c9f674 497 #define CAN_TXMAILBOX_2 ((uint8_t)0x02)
mbed_official 489:119543c9f674 498
mbed_official 489:119543c9f674 499
mbed_official 489:119543c9f674 500 /**
mbed_official 489:119543c9f674 501 * @}
mbed_official 489:119543c9f674 502 */
mbed_official 489:119543c9f674 503
mbed_official 489:119543c9f674 504
mbed_official 489:119543c9f674 505 /* Exported macros -----------------------------------------------------------*/
mbed_official 489:119543c9f674 506 /** @defgroup CAN_Exported_Macro CAN Exported Macros
mbed_official 489:119543c9f674 507 * @{
mbed_official 489:119543c9f674 508 */
mbed_official 489:119543c9f674 509
mbed_official 489:119543c9f674 510 /** @brief Reset CAN handle state
mbed_official 489:119543c9f674 511 * @param __HANDLE__: CAN handle.
mbed_official 489:119543c9f674 512 * @retval None
mbed_official 489:119543c9f674 513 */
mbed_official 489:119543c9f674 514 #define __HAL_CAN_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CAN_STATE_RESET)
mbed_official 489:119543c9f674 515
mbed_official 489:119543c9f674 516 /**
mbed_official 489:119543c9f674 517 * @brief Enable the specified CAN interrupts
mbed_official 489:119543c9f674 518 * @param __HANDLE__: CAN handle.
mbed_official 489:119543c9f674 519 * @param __INTERRUPT__: CAN Interrupt.
mbed_official 489:119543c9f674 520 * This parameter can be one of the following values:
mbed_official 489:119543c9f674 521 * @arg CAN_IT_TME: Transmit mailbox empty interrupt enable
mbed_official 489:119543c9f674 522 * @arg CAN_IT_FMP0: FIFO 0 message pending interrupt
mbed_official 489:119543c9f674 523 * @arg CAN_IT_FF0 : FIFO 0 full interrupt
mbed_official 489:119543c9f674 524 * @arg CAN_IT_FOV0: FIFO 0 overrun interrupt
mbed_official 489:119543c9f674 525 * @arg CAN_IT_FMP1: FIFO 1 message pending interrupt
mbed_official 489:119543c9f674 526 * @arg CAN_IT_FF1 : FIFO 1 full interrupt
mbed_official 489:119543c9f674 527 * @arg CAN_IT_FOV1: FIFO 1 overrun interrupt
mbed_official 489:119543c9f674 528 * @arg CAN_IT_WKU : Wake-up interrupt
mbed_official 489:119543c9f674 529 * @arg CAN_IT_SLK : Sleep acknowledge interrupt
mbed_official 489:119543c9f674 530 * @arg CAN_IT_EWG : Error warning interrupt
mbed_official 489:119543c9f674 531 * @arg CAN_IT_EPV : Error passive interrupt
mbed_official 489:119543c9f674 532 * @arg CAN_IT_BOF : Bus-off interrupt
mbed_official 489:119543c9f674 533 * @arg CAN_IT_LEC : Last error code interrupt
mbed_official 489:119543c9f674 534 * @arg CAN_IT_ERR : Error Interrupt
mbed_official 489:119543c9f674 535 * @retval None.
mbed_official 489:119543c9f674 536 */
mbed_official 489:119543c9f674 537 #define __HAL_CAN_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IER) |= (__INTERRUPT__))
mbed_official 489:119543c9f674 538
mbed_official 489:119543c9f674 539 /**
mbed_official 489:119543c9f674 540 * @brief Disable the specified CAN interrupts
mbed_official 489:119543c9f674 541 * @param __HANDLE__: CAN handle.
mbed_official 489:119543c9f674 542 * @param __INTERRUPT__: CAN Interrupt.
mbed_official 489:119543c9f674 543 * This parameter can be one of the following values:
mbed_official 489:119543c9f674 544 * @arg CAN_IT_TME: Transmit mailbox empty interrupt enable
mbed_official 489:119543c9f674 545 * @arg CAN_IT_FMP0: FIFO 0 message pending interrupt
mbed_official 489:119543c9f674 546 * @arg CAN_IT_FF0 : FIFO 0 full interrupt
mbed_official 489:119543c9f674 547 * @arg CAN_IT_FOV0: FIFO 0 overrun interrupt
mbed_official 489:119543c9f674 548 * @arg CAN_IT_FMP1: FIFO 1 message pending interrupt
mbed_official 489:119543c9f674 549 * @arg CAN_IT_FF1 : FIFO 1 full interrupt
mbed_official 489:119543c9f674 550 * @arg CAN_IT_FOV1: FIFO 1 overrun interrupt
mbed_official 489:119543c9f674 551 * @arg CAN_IT_WKU : Wake-up interrupt
mbed_official 489:119543c9f674 552 * @arg CAN_IT_SLK : Sleep acknowledge interrupt
mbed_official 489:119543c9f674 553 * @arg CAN_IT_EWG : Error warning interrupt
mbed_official 489:119543c9f674 554 * @arg CAN_IT_EPV : Error passive interrupt
mbed_official 489:119543c9f674 555 * @arg CAN_IT_BOF : Bus-off interrupt
mbed_official 489:119543c9f674 556 * @arg CAN_IT_LEC : Last error code interrupt
mbed_official 489:119543c9f674 557 * @arg CAN_IT_ERR : Error Interrupt
mbed_official 489:119543c9f674 558 * @retval None.
mbed_official 489:119543c9f674 559 */
mbed_official 489:119543c9f674 560 #define __HAL_CAN_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IER) &= ~(__INTERRUPT__))
mbed_official 489:119543c9f674 561
mbed_official 489:119543c9f674 562 /**
mbed_official 489:119543c9f674 563 * @brief Return the number of pending received messages.
mbed_official 489:119543c9f674 564 * @param __HANDLE__: CAN handle.
mbed_official 489:119543c9f674 565 * @param __FIFONUMBER__: Receive FIFO number, CAN_FIFO0 or CAN_FIFO1.
mbed_official 489:119543c9f674 566 * @retval The number of pending message.
mbed_official 489:119543c9f674 567 */
mbed_official 489:119543c9f674 568 #define __HAL_CAN_MSG_PENDING(__HANDLE__, __FIFONUMBER__) (((__FIFONUMBER__) == CAN_FIFO0)? \
mbed_official 489:119543c9f674 569 ((uint8_t)((__HANDLE__)->Instance->RF0R&(uint32_t)0x03)) : ((uint8_t)((__HANDLE__)->Instance->RF1R&(uint32_t)0x03)))
mbed_official 489:119543c9f674 570
mbed_official 489:119543c9f674 571 /** @brief Check whether the specified CAN flag is set or not.
mbed_official 489:119543c9f674 572 * @param __HANDLE__: specifies the CAN Handle.
mbed_official 489:119543c9f674 573 * @param __FLAG__: specifies the flag to check.
mbed_official 489:119543c9f674 574 * This parameter can be one of the following values:
mbed_official 489:119543c9f674 575 * @arg CAN_TSR_RQCP0: Request MailBox0 Flag
mbed_official 489:119543c9f674 576 * @arg CAN_TSR_RQCP1: Request MailBox1 Flag
mbed_official 489:119543c9f674 577 * @arg CAN_TSR_RQCP2: Request MailBox2 Flag
mbed_official 489:119543c9f674 578 * @arg CAN_FLAG_TXOK0: Transmission OK MailBox0 Flag
mbed_official 489:119543c9f674 579 * @arg CAN_FLAG_TXOK1: Transmission OK MailBox1 Flag
mbed_official 489:119543c9f674 580 * @arg CAN_FLAG_TXOK2: Transmission OK MailBox2 Flag
mbed_official 489:119543c9f674 581 * @arg CAN_FLAG_TME0: Transmit mailbox 0 empty Flag
mbed_official 489:119543c9f674 582 * @arg CAN_FLAG_TME1: Transmit mailbox 1 empty Flag
mbed_official 489:119543c9f674 583 * @arg CAN_FLAG_TME2: Transmit mailbox 2 empty Flag
mbed_official 489:119543c9f674 584 * @arg CAN_FLAG_FMP0: FIFO 0 Message Pending Flag
mbed_official 489:119543c9f674 585 * @arg CAN_FLAG_FF0: FIFO 0 Full Flag
mbed_official 489:119543c9f674 586 * @arg CAN_FLAG_FOV0: FIFO 0 Overrun Flag
mbed_official 489:119543c9f674 587 * @arg CAN_FLAG_FMP1: FIFO 1 Message Pending Flag
mbed_official 489:119543c9f674 588 * @arg CAN_FLAG_FF1: FIFO 1 Full Flag
mbed_official 489:119543c9f674 589 * @arg CAN_FLAG_FOV1: FIFO 1 Overrun Flag
mbed_official 489:119543c9f674 590 * @arg CAN_FLAG_WKU: Wake up Flag
mbed_official 489:119543c9f674 591 * @arg CAN_FLAG_SLAK: Sleep acknowledge Flag
mbed_official 489:119543c9f674 592 * @arg CAN_FLAG_SLAKI: Sleep acknowledge Flag
mbed_official 489:119543c9f674 593 * @arg CAN_FLAG_EWG: Error Warning Flag
mbed_official 489:119543c9f674 594 * @arg CAN_FLAG_EPV: Error Passive Flag
mbed_official 489:119543c9f674 595 * @arg CAN_FLAG_BOF: Bus-Off Flag
mbed_official 489:119543c9f674 596 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 489:119543c9f674 597 */
mbed_official 489:119543c9f674 598 #define __HAL_CAN_GET_FLAG(__HANDLE__, __FLAG__) \
mbed_official 489:119543c9f674 599 ((((__FLAG__) >> 8) == 5)? ((((__HANDLE__)->Instance->TSR) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): \
mbed_official 489:119543c9f674 600 (((__FLAG__) >> 8) == 2)? ((((__HANDLE__)->Instance->RF0R) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): \
mbed_official 489:119543c9f674 601 (((__FLAG__) >> 8) == 4)? ((((__HANDLE__)->Instance->RF1R) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): \
mbed_official 489:119543c9f674 602 (((__FLAG__) >> 8) == 1)? ((((__HANDLE__)->Instance->MSR) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))): \
mbed_official 489:119543c9f674 603 ((((__HANDLE__)->Instance->ESR) & (1U << ((__FLAG__) & CAN_FLAG_MASK))) == (1U << ((__FLAG__) & CAN_FLAG_MASK))))
mbed_official 489:119543c9f674 604
mbed_official 489:119543c9f674 605 /** @brief Clear the specified CAN pending flag.
mbed_official 489:119543c9f674 606 * @param __HANDLE__: specifies the CAN Handle.
mbed_official 489:119543c9f674 607 * @param __FLAG__: specifies the flag to check.
mbed_official 489:119543c9f674 608 * This parameter can be one of the following values:
mbed_official 489:119543c9f674 609 * @arg CAN_TSR_RQCP0: Request MailBox0 Flag
mbed_official 489:119543c9f674 610 * @arg CAN_TSR_RQCP1: Request MailBox1 Flag
mbed_official 489:119543c9f674 611 * @arg CAN_TSR_RQCP2: Request MailBox2 Flag
mbed_official 489:119543c9f674 612 * @arg CAN_FLAG_TXOK0: Transmission OK MailBox0 Flag
mbed_official 489:119543c9f674 613 * @arg CAN_FLAG_TXOK1: Transmission OK MailBox1 Flag
mbed_official 489:119543c9f674 614 * @arg CAN_FLAG_TXOK2: Transmission OK MailBox2 Flag
mbed_official 489:119543c9f674 615 * @arg CAN_FLAG_TME0: Transmit mailbox 0 empty Flag
mbed_official 489:119543c9f674 616 * @arg CAN_FLAG_TME1: Transmit mailbox 1 empty Flag
mbed_official 489:119543c9f674 617 * @arg CAN_FLAG_TME2: Transmit mailbox 2 empty Flag
mbed_official 489:119543c9f674 618 * @arg CAN_FLAG_FMP0: FIFO 0 Message Pending Flag
mbed_official 489:119543c9f674 619 * @arg CAN_FLAG_FF0: FIFO 0 Full Flag
mbed_official 489:119543c9f674 620 * @arg CAN_FLAG_FOV0: FIFO 0 Overrun Flag
mbed_official 489:119543c9f674 621 * @arg CAN_FLAG_FMP1: FIFO 1 Message Pending Flag
mbed_official 489:119543c9f674 622 * @arg CAN_FLAG_FF1: FIFO 1 Full Flag
mbed_official 489:119543c9f674 623 * @arg CAN_FLAG_FOV1: FIFO 1 Overrun Flag
mbed_official 489:119543c9f674 624 * @arg CAN_FLAG_WKU: Wake up Flag
mbed_official 489:119543c9f674 625 * @arg CAN_FLAG_SLAKI: Sleep acknowledge Flag
mbed_official 489:119543c9f674 626 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 489:119543c9f674 627 */
mbed_official 489:119543c9f674 628 #define __HAL_CAN_CLEAR_FLAG(__HANDLE__, __FLAG__) \
mbed_official 489:119543c9f674 629 ((((__FLAG__) >> 8U) == TSR_REGISTER_INDEX) ? (((__HANDLE__)->Instance->TSR) = (1U << ((__FLAG__) & CAN_FLAG_MASK))): \
mbed_official 489:119543c9f674 630 (((__FLAG__) >> 8U) == RF0R_REGISTER_INDEX)? (((__HANDLE__)->Instance->RF0R) = (1U << ((__FLAG__) & CAN_FLAG_MASK))): \
mbed_official 489:119543c9f674 631 (((__FLAG__) >> 8U) == RF1R_REGISTER_INDEX)? (((__HANDLE__)->Instance->RF1R) = (1U << ((__FLAG__) & CAN_FLAG_MASK))): \
mbed_official 489:119543c9f674 632 (((__FLAG__) >> 8U) == MSR_REGISTER_INDEX) ? (((__HANDLE__)->Instance->MSR) = (1U << ((__FLAG__) & CAN_FLAG_MASK))): 0)
mbed_official 489:119543c9f674 633
mbed_official 489:119543c9f674 634
mbed_official 489:119543c9f674 635 /** @brief Check if the specified CAN interrupt source is enabled or disabled.
mbed_official 489:119543c9f674 636 * @param __HANDLE__: specifies the CAN Handle.
mbed_official 489:119543c9f674 637 * @param __INTERRUPT__: specifies the CAN interrupt source to check.
mbed_official 489:119543c9f674 638 * This parameter can be one of the following values:
mbed_official 489:119543c9f674 639 * @arg CAN_IT_TME: Transmit mailbox empty interrupt enable
mbed_official 489:119543c9f674 640 * @arg CAN_IT_FMP0: FIFO 0 message pending interrupt
mbed_official 489:119543c9f674 641 * @arg CAN_IT_FF0 : FIFO 0 full interrupt
mbed_official 489:119543c9f674 642 * @arg CAN_IT_FOV0: FIFO 0 overrun interrupt
mbed_official 489:119543c9f674 643 * @arg CAN_IT_FMP1: FIFO 1 message pending interrupt
mbed_official 489:119543c9f674 644 * @arg CAN_IT_FF1 : FIFO 1 full interrupt
mbed_official 489:119543c9f674 645 * @arg CAN_IT_FOV1: FIFO 1 overrun interrupt
mbed_official 489:119543c9f674 646 * @arg CAN_IT_WKU : Wake-up interrupt
mbed_official 489:119543c9f674 647 * @arg CAN_IT_SLK : Sleep acknowledge interrupt
mbed_official 489:119543c9f674 648 * @arg CAN_IT_EWG : Error warning interrupt
mbed_official 489:119543c9f674 649 * @arg CAN_IT_EPV : Error passive interrupt
mbed_official 489:119543c9f674 650 * @arg CAN_IT_BOF : Bus-off interrupt
mbed_official 489:119543c9f674 651 * @arg CAN_IT_LEC : Last error code interrupt
mbed_official 489:119543c9f674 652 * @arg CAN_IT_ERR : Error Interrupt
mbed_official 489:119543c9f674 653 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 489:119543c9f674 654 */
mbed_official 489:119543c9f674 655 #define __HAL_CAN_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
mbed_official 489:119543c9f674 656
mbed_official 489:119543c9f674 657 /**
mbed_official 489:119543c9f674 658 * @brief Check the transmission status of a CAN Frame.
mbed_official 489:119543c9f674 659 * @param __HANDLE__: specifies the CAN Handle.
mbed_official 489:119543c9f674 660 * @param __TRANSMITMAILBOX__: the number of the mailbox that is used for transmission.
mbed_official 489:119543c9f674 661 * @retval The new status of transmission (TRUE or FALSE).
mbed_official 489:119543c9f674 662 */
mbed_official 489:119543c9f674 663 #define __HAL_CAN_TRANSMIT_STATUS(__HANDLE__, __TRANSMITMAILBOX__)\
mbed_official 489:119543c9f674 664 (((__TRANSMITMAILBOX__) == CAN_TXMAILBOX_0)? ((((__HANDLE__)->Instance->TSR) & (CAN_TSR_RQCP0 | CAN_TSR_TXOK0 | CAN_TSR_TME0)) == (CAN_TSR_RQCP0 | CAN_TSR_TXOK0 | CAN_TSR_TME0)) :\
mbed_official 489:119543c9f674 665 ((__TRANSMITMAILBOX__) == CAN_TXMAILBOX_1)? ((((__HANDLE__)->Instance->TSR) & (CAN_TSR_RQCP1 | CAN_TSR_TXOK1 | CAN_TSR_TME1)) == (CAN_TSR_RQCP1 | CAN_TSR_TXOK1 | CAN_TSR_TME1)) :\
mbed_official 489:119543c9f674 666 ((((__HANDLE__)->Instance->TSR) & (CAN_TSR_RQCP2 | CAN_TSR_TXOK2 | CAN_TSR_TME2)) == (CAN_TSR_RQCP2 | CAN_TSR_TXOK2 | CAN_TSR_TME2)))
mbed_official 489:119543c9f674 667
mbed_official 489:119543c9f674 668 /**
mbed_official 489:119543c9f674 669 * @brief Release the specified receive FIFO.
mbed_official 489:119543c9f674 670 * @param __HANDLE__: CAN handle.
mbed_official 489:119543c9f674 671 * @param __FIFONUMBER__: Receive FIFO number, CAN_FIFO0 or CAN_FIFO1.
mbed_official 489:119543c9f674 672 * @retval None.
mbed_official 489:119543c9f674 673 */
mbed_official 489:119543c9f674 674 #define __HAL_CAN_FIFO_RELEASE(__HANDLE__, __FIFONUMBER__) (((__FIFONUMBER__) == CAN_FIFO0)? \
mbed_official 489:119543c9f674 675 ((__HANDLE__)->Instance->RF0R |= CAN_RF0R_RFOM0) : ((__HANDLE__)->Instance->RF1R |= CAN_RF1R_RFOM1))
mbed_official 489:119543c9f674 676
mbed_official 489:119543c9f674 677 /**
mbed_official 489:119543c9f674 678 * @brief Cancel a transmit request.
mbed_official 489:119543c9f674 679 * @param __HANDLE__: specifies the CAN Handle.
mbed_official 489:119543c9f674 680 * @param __TRANSMITMAILBOX__: the number of the mailbox that is used for transmission.
mbed_official 489:119543c9f674 681 * @retval None.
mbed_official 489:119543c9f674 682 */
mbed_official 489:119543c9f674 683 #define __HAL_CAN_CANCEL_TRANSMIT(__HANDLE__, __TRANSMITMAILBOX__)\
mbed_official 489:119543c9f674 684 (((__TRANSMITMAILBOX__) == CAN_TXMAILBOX_0)? ((__HANDLE__)->Instance->TSR |= CAN_TSR_ABRQ0) :\
mbed_official 489:119543c9f674 685 ((__TRANSMITMAILBOX__) == CAN_TXMAILBOX_1)? ((__HANDLE__)->Instance->TSR |= CAN_TSR_ABRQ1) :\
mbed_official 489:119543c9f674 686 ((__HANDLE__)->Instance->TSR |= CAN_TSR_ABRQ2))
mbed_official 489:119543c9f674 687
mbed_official 489:119543c9f674 688 /**
mbed_official 489:119543c9f674 689 * @brief Enable or disables the DBG Freeze for CAN.
mbed_official 489:119543c9f674 690 * @param __HANDLE__: specifies the CAN Handle.
mbed_official 489:119543c9f674 691 * @param __NEWSTATE__: new state of the CAN peripheral.
mbed_official 489:119543c9f674 692 * This parameter can be: ENABLE (CAN reception/transmission is frozen
mbed_official 489:119543c9f674 693 * during debug. Reception FIFOs can still be accessed/controlled normally)
mbed_official 489:119543c9f674 694 * or DISABLE (CAN is working during debug).
mbed_official 489:119543c9f674 695 * @retval None
mbed_official 489:119543c9f674 696 */
mbed_official 489:119543c9f674 697 #define __HAL_CAN_DBG_FREEZE(__HANDLE__, __NEWSTATE__) (((__NEWSTATE__) == ENABLE)? \
mbed_official 489:119543c9f674 698 ((__HANDLE__)->Instance->MCR |= CAN_MCR_DBF) : ((__HANDLE__)->Instance->MCR &= ~CAN_MCR_DBF))
mbed_official 489:119543c9f674 699
mbed_official 489:119543c9f674 700 /**
mbed_official 489:119543c9f674 701 * @}
mbed_official 489:119543c9f674 702 */
mbed_official 489:119543c9f674 703
mbed_official 489:119543c9f674 704 /* Private macros --------------------------------------------------------*/
mbed_official 489:119543c9f674 705 /** @defgroup CAN_Private_Macros CAN Private Macros
mbed_official 489:119543c9f674 706 * @{
mbed_official 489:119543c9f674 707 */
mbed_official 489:119543c9f674 708
mbed_official 489:119543c9f674 709 #define IS_CAN_MODE(MODE) (((MODE) == CAN_MODE_NORMAL) || \
mbed_official 489:119543c9f674 710 ((MODE) == CAN_MODE_LOOPBACK)|| \
mbed_official 489:119543c9f674 711 ((MODE) == CAN_MODE_SILENT) || \
mbed_official 489:119543c9f674 712 ((MODE) == CAN_MODE_SILENT_LOOPBACK))
mbed_official 489:119543c9f674 713
mbed_official 489:119543c9f674 714 #define IS_CAN_SJW(SJW) (((SJW) == CAN_SJW_1TQ) || ((SJW) == CAN_SJW_2TQ)|| \
mbed_official 489:119543c9f674 715 ((SJW) == CAN_SJW_3TQ) || ((SJW) == CAN_SJW_4TQ))
mbed_official 489:119543c9f674 716
mbed_official 489:119543c9f674 717 #define IS_CAN_BS1(BS1) ((BS1) <= CAN_BS1_16TQ)
mbed_official 489:119543c9f674 718
mbed_official 489:119543c9f674 719 #define IS_CAN_BS2(BS2) ((BS2) <= CAN_BS2_8TQ)
mbed_official 489:119543c9f674 720
mbed_official 489:119543c9f674 721 #define IS_CAN_FILTER_MODE(MODE) (((MODE) == CAN_FILTERMODE_IDMASK) || \
mbed_official 489:119543c9f674 722 ((MODE) == CAN_FILTERMODE_IDLIST))
mbed_official 489:119543c9f674 723
mbed_official 489:119543c9f674 724 #define IS_CAN_FILTER_SCALE(SCALE) (((SCALE) == CAN_FILTERSCALE_16BIT) || \
mbed_official 489:119543c9f674 725 ((SCALE) == CAN_FILTERSCALE_32BIT))
mbed_official 489:119543c9f674 726
mbed_official 489:119543c9f674 727
mbed_official 489:119543c9f674 728 #define IS_CAN_FILTER_FIFO(FIFO) (((FIFO) == CAN_FILTER_FIFO0) || \
mbed_official 489:119543c9f674 729 ((FIFO) == CAN_FILTER_FIFO1))
mbed_official 489:119543c9f674 730
mbed_official 489:119543c9f674 731 #define IS_CAN_IDTYPE(IDTYPE) (((IDTYPE) == CAN_ID_STD) || \
mbed_official 489:119543c9f674 732 ((IDTYPE) == CAN_ID_EXT))
mbed_official 489:119543c9f674 733
mbed_official 489:119543c9f674 734 #define IS_CAN_RTR(RTR) (((RTR) == CAN_RTR_DATA) || ((RTR) == CAN_RTR_REMOTE))
mbed_official 489:119543c9f674 735
mbed_official 489:119543c9f674 736 #define IS_CAN_FIFO(FIFO) (((FIFO) == CAN_FIFO0) || ((FIFO) == CAN_FIFO1))
mbed_official 489:119543c9f674 737
mbed_official 489:119543c9f674 738 #define IS_CAN_BANKNUMBER(BANKNUMBER) ((BANKNUMBER) <= 28)
mbed_official 489:119543c9f674 739
mbed_official 489:119543c9f674 740 #define IS_CAN_TRANSMITMAILBOX(TRANSMITMAILBOX) ((TRANSMITMAILBOX) <= ((uint8_t)0x02))
mbed_official 489:119543c9f674 741 #define IS_CAN_STDID(STDID) ((STDID) <= ((uint32_t)0x7FF))
mbed_official 489:119543c9f674 742 #define IS_CAN_EXTID(EXTID) ((EXTID) <= ((uint32_t)0x1FFFFFFF))
mbed_official 489:119543c9f674 743 #define IS_CAN_DLC(DLC) ((DLC) <= ((uint8_t)0x08))
mbed_official 489:119543c9f674 744
mbed_official 489:119543c9f674 745 #define IS_CAN_PRESCALER(PRESCALER) (((PRESCALER) >= 1) && ((PRESCALER) <= 1024))
mbed_official 489:119543c9f674 746
mbed_official 489:119543c9f674 747 /**
mbed_official 489:119543c9f674 748 * @}
mbed_official 489:119543c9f674 749 */
mbed_official 489:119543c9f674 750
mbed_official 489:119543c9f674 751 /* Include CAN HAL Extension module */
mbed_official 489:119543c9f674 752 #include "stm32f1xx_hal_can_ex.h"
mbed_official 489:119543c9f674 753
mbed_official 489:119543c9f674 754 /* Exported functions --------------------------------------------------------*/
mbed_official 489:119543c9f674 755 /** @addtogroup CAN_Exported_Functions
mbed_official 489:119543c9f674 756 * @{
mbed_official 489:119543c9f674 757 */
mbed_official 489:119543c9f674 758
mbed_official 489:119543c9f674 759 /** @addtogroup CAN_Exported_Functions_Group1
mbed_official 489:119543c9f674 760 * @brief Initialization and Configuration functions
mbed_official 489:119543c9f674 761 * @{
mbed_official 489:119543c9f674 762 */
mbed_official 489:119543c9f674 763 /* Initialization and de-initialization functions *****************************/
mbed_official 489:119543c9f674 764 HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef* hcan);
mbed_official 489:119543c9f674 765 HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef* hcan, CAN_FilterConfTypeDef* sFilterConfig);
mbed_official 489:119543c9f674 766 HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef* hcan);
mbed_official 489:119543c9f674 767 void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan);
mbed_official 489:119543c9f674 768 void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan);
mbed_official 489:119543c9f674 769 /**
mbed_official 489:119543c9f674 770 * @}
mbed_official 489:119543c9f674 771 */
mbed_official 489:119543c9f674 772
mbed_official 489:119543c9f674 773 /** @addtogroup CAN_Exported_Functions_Group2
mbed_official 489:119543c9f674 774 * @brief I/O operation functions
mbed_official 489:119543c9f674 775 * @{
mbed_official 489:119543c9f674 776 */
mbed_official 489:119543c9f674 777 /* IO operation functions *****************************************************/
mbed_official 489:119543c9f674 778 HAL_StatusTypeDef HAL_CAN_Transmit(CAN_HandleTypeDef *hcan, uint32_t Timeout);
mbed_official 489:119543c9f674 779 HAL_StatusTypeDef HAL_CAN_Transmit_IT(CAN_HandleTypeDef *hcan);
mbed_official 489:119543c9f674 780 HAL_StatusTypeDef HAL_CAN_Receive(CAN_HandleTypeDef *hcan, uint8_t FIFONumber, uint32_t Timeout);
mbed_official 489:119543c9f674 781 HAL_StatusTypeDef HAL_CAN_Receive_IT(CAN_HandleTypeDef *hcan, uint8_t FIFONumber);
mbed_official 489:119543c9f674 782 HAL_StatusTypeDef HAL_CAN_Sleep(CAN_HandleTypeDef *hcan);
mbed_official 489:119543c9f674 783 HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef *hcan);
mbed_official 489:119543c9f674 784 void HAL_CAN_IRQHandler(CAN_HandleTypeDef* hcan);
mbed_official 489:119543c9f674 785 void HAL_CAN_TxCpltCallback(CAN_HandleTypeDef* hcan);
mbed_official 489:119543c9f674 786 void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* hcan);
mbed_official 489:119543c9f674 787 void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan);
mbed_official 489:119543c9f674 788 /**
mbed_official 489:119543c9f674 789 * @}
mbed_official 489:119543c9f674 790 */
mbed_official 489:119543c9f674 791
mbed_official 489:119543c9f674 792 /** @addtogroup CAN_Exported_Functions_Group3
mbed_official 489:119543c9f674 793 * @brief CAN Peripheral State functions
mbed_official 489:119543c9f674 794 * @{
mbed_official 489:119543c9f674 795 */
mbed_official 489:119543c9f674 796 /* Peripheral State and Error functions ***************************************/
mbed_official 489:119543c9f674 797 uint32_t HAL_CAN_GetError(CAN_HandleTypeDef *hcan);
mbed_official 489:119543c9f674 798 HAL_CAN_StateTypeDef HAL_CAN_GetState(CAN_HandleTypeDef* hcan);
mbed_official 489:119543c9f674 799 /**
mbed_official 489:119543c9f674 800 * @}
mbed_official 489:119543c9f674 801 */
mbed_official 489:119543c9f674 802
mbed_official 489:119543c9f674 803 /**
mbed_official 489:119543c9f674 804 * @}
mbed_official 489:119543c9f674 805 */
mbed_official 489:119543c9f674 806
mbed_official 489:119543c9f674 807 /**
mbed_official 489:119543c9f674 808 * @}
mbed_official 489:119543c9f674 809 */
mbed_official 489:119543c9f674 810
mbed_official 489:119543c9f674 811 /**
mbed_official 489:119543c9f674 812 * @}
mbed_official 489:119543c9f674 813 */
mbed_official 489:119543c9f674 814
mbed_official 489:119543c9f674 815 #endif /* STM32F103x6) || STM32F103xB || STM32F103xE || */
mbed_official 489:119543c9f674 816 /* STM32F103xG) || STM32F105xC || STM32F107xC */
mbed_official 489:119543c9f674 817
mbed_official 489:119543c9f674 818 #ifdef __cplusplus
mbed_official 489:119543c9f674 819 }
mbed_official 489:119543c9f674 820 #endif
mbed_official 489:119543c9f674 821
mbed_official 489:119543c9f674 822 #endif /* __stm32f1xx_CAN_H */
mbed_official 489:119543c9f674 823
mbed_official 489:119543c9f674 824
mbed_official 489:119543c9f674 825 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/