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:
Mon Sep 28 10:45:10 2015 +0100
Revision:
630:825f75ca301e
Parent:
441:d2c15dda23c1
Synchronized with git revision 54fbe4144faf309c37205a5d39fa665daa919f10

Full URL: https://github.com/mbedmicro/mbed/commit/54fbe4144faf309c37205a5d39fa665daa919f10/

NUCLEO_F031K6 : Add new target

Who changed what in which revision?

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