STM32F479xx HAL User Manual
Data Structures | Defines | Typedefs | Enumerations | Functions
stm32f4xx_hal_can.h File Reference

Header file of CAN HAL module. More...

#include "stm32f4xx_hal_def.h"

Go to the source code of this file.

Data Structures

struct  CAN_InitTypeDef
 CAN init structure definition. More...
struct  CAN_FilterTypeDef
 CAN filter configuration structure definition. More...
struct  CAN_TxHeaderTypeDef
 CAN Tx message header structure definition. More...
struct  CAN_RxHeaderTypeDef
 CAN Rx message header structure definition. More...
struct  __CAN_HandleTypeDef
 CAN handle Structure definition. More...

Defines

#define HAL_CAN_ERROR_NONE   (0x00000000U)
#define HAL_CAN_ERROR_EWG   (0x00000001U)
#define HAL_CAN_ERROR_EPV   (0x00000002U)
#define HAL_CAN_ERROR_BOF   (0x00000004U)
#define HAL_CAN_ERROR_STF   (0x00000008U)
#define HAL_CAN_ERROR_FOR   (0x00000010U)
#define HAL_CAN_ERROR_ACK   (0x00000020U)
#define HAL_CAN_ERROR_BR   (0x00000040U)
#define HAL_CAN_ERROR_BD   (0x00000080U)
#define HAL_CAN_ERROR_CRC   (0x00000100U)
#define HAL_CAN_ERROR_RX_FOV0   (0x00000200U)
#define HAL_CAN_ERROR_RX_FOV1   (0x00000400U)
#define HAL_CAN_ERROR_TX_ALST0   (0x00000800U)
#define HAL_CAN_ERROR_TX_TERR0   (0x00001000U)
#define HAL_CAN_ERROR_TX_ALST1   (0x00002000U)
#define HAL_CAN_ERROR_TX_TERR1   (0x00004000U)
#define HAL_CAN_ERROR_TX_ALST2   (0x00008000U)
#define HAL_CAN_ERROR_TX_TERR2   (0x00010000U)
#define HAL_CAN_ERROR_TIMEOUT   (0x00020000U)
#define HAL_CAN_ERROR_NOT_INITIALIZED   (0x00040000U)
#define HAL_CAN_ERROR_NOT_READY   (0x00080000U)
#define HAL_CAN_ERROR_NOT_STARTED   (0x00100000U)
#define HAL_CAN_ERROR_PARAM   (0x00200000U)
#define HAL_CAN_ERROR_INVALID_CALLBACK   (0x00400000U)
#define HAL_CAN_ERROR_INTERNAL   (0x00800000U)
#define CAN_INITSTATUS_FAILED   (0x00000000U)
#define CAN_INITSTATUS_SUCCESS   (0x00000001U)
#define CAN_MODE_NORMAL   (0x00000000U)
#define CAN_MODE_LOOPBACK   ((uint32_t)CAN_BTR_LBKM)
#define CAN_MODE_SILENT   ((uint32_t)CAN_BTR_SILM)
#define CAN_MODE_SILENT_LOOPBACK   ((uint32_t)(CAN_BTR_LBKM | CAN_BTR_SILM))
#define CAN_SJW_1TQ   (0x00000000U)
#define CAN_SJW_2TQ   ((uint32_t)CAN_BTR_SJW_0)
#define CAN_SJW_3TQ   ((uint32_t)CAN_BTR_SJW_1)
#define CAN_SJW_4TQ   ((uint32_t)CAN_BTR_SJW)
#define CAN_BS1_1TQ   (0x00000000U)
#define CAN_BS1_2TQ   ((uint32_t)CAN_BTR_TS1_0)
#define CAN_BS1_3TQ   ((uint32_t)CAN_BTR_TS1_1)
#define CAN_BS1_4TQ   ((uint32_t)(CAN_BTR_TS1_1 | CAN_BTR_TS1_0))
#define CAN_BS1_5TQ   ((uint32_t)CAN_BTR_TS1_2)
#define CAN_BS1_6TQ   ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_0))
#define CAN_BS1_7TQ   ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_1))
#define CAN_BS1_8TQ   ((uint32_t)(CAN_BTR_TS1_2 | CAN_BTR_TS1_1 | CAN_BTR_TS1_0))
#define CAN_BS1_9TQ   ((uint32_t)CAN_BTR_TS1_3)
#define CAN_BS1_10TQ   ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_0))
#define CAN_BS1_11TQ   ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_1))
#define CAN_BS1_12TQ   ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_1 | CAN_BTR_TS1_0))
#define CAN_BS1_13TQ   ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2))
#define CAN_BS1_14TQ   ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2 | CAN_BTR_TS1_0))
#define CAN_BS1_15TQ   ((uint32_t)(CAN_BTR_TS1_3 | CAN_BTR_TS1_2 | CAN_BTR_TS1_1))
#define CAN_BS1_16TQ   ((uint32_t)CAN_BTR_TS1)
#define CAN_BS2_1TQ   (0x00000000U)
#define CAN_BS2_2TQ   ((uint32_t)CAN_BTR_TS2_0)
#define CAN_BS2_3TQ   ((uint32_t)CAN_BTR_TS2_1)
#define CAN_BS2_4TQ   ((uint32_t)(CAN_BTR_TS2_1 | CAN_BTR_TS2_0))
#define CAN_BS2_5TQ   ((uint32_t)CAN_BTR_TS2_2)
#define CAN_BS2_6TQ   ((uint32_t)(CAN_BTR_TS2_2 | CAN_BTR_TS2_0))
#define CAN_BS2_7TQ   ((uint32_t)(CAN_BTR_TS2_2 | CAN_BTR_TS2_1))
#define CAN_BS2_8TQ   ((uint32_t)CAN_BTR_TS2)
#define CAN_FILTERMODE_IDMASK   (0x00000000U)
#define CAN_FILTERMODE_IDLIST   (0x00000001U)
#define CAN_FILTERSCALE_16BIT   (0x00000000U)
#define CAN_FILTERSCALE_32BIT   (0x00000001U)
#define CAN_FILTER_DISABLE   (0x00000000U)
#define CAN_FILTER_ENABLE   (0x00000001U)
#define CAN_FILTER_FIFO0   (0x00000000U)
#define CAN_FILTER_FIFO1   (0x00000001U)
#define CAN_ID_STD   (0x00000000U)
#define CAN_ID_EXT   (0x00000004U)
#define CAN_RTR_DATA   (0x00000000U)
#define CAN_RTR_REMOTE   (0x00000002U)
#define CAN_RX_FIFO0   (0x00000000U)
#define CAN_RX_FIFO1   (0x00000001U)
#define CAN_TX_MAILBOX0   (0x00000001U)
#define CAN_TX_MAILBOX1   (0x00000002U)
#define CAN_TX_MAILBOX2   (0x00000004U)
#define CAN_FLAG_RQCP0   (0x00000500U)
#define CAN_FLAG_TXOK0   (0x00000501U)
#define CAN_FLAG_ALST0   (0x00000502U)
#define CAN_FLAG_TERR0   (0x00000503U)
#define CAN_FLAG_RQCP1   (0x00000508U)
#define CAN_FLAG_TXOK1   (0x00000509U)
#define CAN_FLAG_ALST1   (0x0000050AU)
#define CAN_FLAG_TERR1   (0x0000050BU)
#define CAN_FLAG_RQCP2   (0x00000510U)
#define CAN_FLAG_TXOK2   (0x00000511U)
#define CAN_FLAG_ALST2   (0x00000512U)
#define CAN_FLAG_TERR2   (0x00000513U)
#define CAN_FLAG_TME0   (0x0000051AU)
#define CAN_FLAG_TME1   (0x0000051BU)
#define CAN_FLAG_TME2   (0x0000051CU)
#define CAN_FLAG_LOW0   (0x0000051DU)
#define CAN_FLAG_LOW1   (0x0000051EU)
#define CAN_FLAG_LOW2   (0x0000051FU)
#define CAN_FLAG_FF0   (0x00000203U)
#define CAN_FLAG_FOV0   (0x00000204U)
#define CAN_FLAG_FF1   (0x00000403U)
#define CAN_FLAG_FOV1   (0x00000404U)
#define CAN_FLAG_INAK   (0x00000100U)
#define CAN_FLAG_SLAK   (0x00000101U)
#define CAN_FLAG_ERRI   (0x00000102U)
#define CAN_FLAG_WKU   (0x00000103U)
#define CAN_FLAG_SLAKI   (0x00000104U)
#define CAN_FLAG_EWG   (0x00000300U)
#define CAN_FLAG_EPV   (0x00000301U)
#define CAN_FLAG_BOF   (0x00000302U)
#define CAN_IT_TX_MAILBOX_EMPTY   ((uint32_t)CAN_IER_TMEIE)
#define CAN_IT_RX_FIFO0_MSG_PENDING   ((uint32_t)CAN_IER_FMPIE0)
#define CAN_IT_RX_FIFO0_FULL   ((uint32_t)CAN_IER_FFIE0)
#define CAN_IT_RX_FIFO0_OVERRUN   ((uint32_t)CAN_IER_FOVIE0)
#define CAN_IT_RX_FIFO1_MSG_PENDING   ((uint32_t)CAN_IER_FMPIE1)
#define CAN_IT_RX_FIFO1_FULL   ((uint32_t)CAN_IER_FFIE1)
#define CAN_IT_RX_FIFO1_OVERRUN   ((uint32_t)CAN_IER_FOVIE1)
#define CAN_IT_WAKEUP   ((uint32_t)CAN_IER_WKUIE)
#define CAN_IT_SLEEP_ACK   ((uint32_t)CAN_IER_SLKIE)
#define CAN_IT_ERROR_WARNING   ((uint32_t)CAN_IER_EWGIE)
#define CAN_IT_ERROR_PASSIVE   ((uint32_t)CAN_IER_EPVIE)
#define CAN_IT_BUSOFF   ((uint32_t)CAN_IER_BOFIE)
#define CAN_IT_LAST_ERROR_CODE   ((uint32_t)CAN_IER_LECIE)
#define CAN_IT_ERROR   ((uint32_t)CAN_IER_ERRIE)
#define __HAL_CAN_RESET_HANDLE_STATE(__HANDLE__)
 Reset CAN handle state.
#define __HAL_CAN_ENABLE_IT(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->IER) |= (__INTERRUPT__))
 Enable the specified CAN interrupts.
#define __HAL_CAN_DISABLE_IT(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->IER) &= ~(__INTERRUPT__))
 Disable the specified CAN interrupts.
#define __HAL_CAN_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->IER) & (__INTERRUPT__))
 Check if the specified CAN interrupt source is enabled or disabled.
#define __HAL_CAN_GET_FLAG(__HANDLE__, __FLAG__)
 Check whether the specified CAN flag is set or not.
#define __HAL_CAN_CLEAR_FLAG(__HANDLE__, __FLAG__)
 Clear the specified CAN pending flag.
#define CAN_FLAG_MASK   (0x000000FFU)
#define IS_CAN_MODE(MODE)
#define IS_CAN_SJW(SJW)
#define IS_CAN_BS1(BS1)
#define IS_CAN_BS2(BS2)
#define IS_CAN_PRESCALER(PRESCALER)   (((PRESCALER) >= 1U) && ((PRESCALER) <= 1024U))
#define IS_CAN_FILTER_ID_HALFWORD(HALFWORD)   ((HALFWORD) <= 0xFFFFU)
#define IS_CAN_FILTER_BANK_DUAL(BANK)   ((BANK) <= 27U)
#define IS_CAN_FILTER_BANK_SINGLE(BANK)   ((BANK) <= 13U)
#define IS_CAN_FILTER_MODE(MODE)
#define IS_CAN_FILTER_SCALE(SCALE)
#define IS_CAN_FILTER_ACTIVATION(ACTIVATION)
#define IS_CAN_FILTER_FIFO(FIFO)
#define IS_CAN_TX_MAILBOX(TRANSMITMAILBOX)
#define IS_CAN_TX_MAILBOX_LIST(TRANSMITMAILBOX)   ((TRANSMITMAILBOX) <= (CAN_TX_MAILBOX0 | CAN_TX_MAILBOX1 | CAN_TX_MAILBOX2))
#define IS_CAN_STDID(STDID)   ((STDID) <= 0x7FFU)
#define IS_CAN_EXTID(EXTID)   ((EXTID) <= 0x1FFFFFFFU)
#define IS_CAN_DLC(DLC)   ((DLC) <= 8U)
#define IS_CAN_IDTYPE(IDTYPE)
#define IS_CAN_RTR(RTR)   (((RTR) == CAN_RTR_DATA) || ((RTR) == CAN_RTR_REMOTE))
#define IS_CAN_RX_FIFO(FIFO)   (((FIFO) == CAN_RX_FIFO0) || ((FIFO) == CAN_RX_FIFO1))
#define IS_CAN_IT(IT)

Typedefs

typedef struct __CAN_HandleTypeDef CAN_HandleTypeDef
 CAN handle Structure definition.
typedef void(* pCAN_CallbackTypeDef )(CAN_HandleTypeDef *hcan)
 HAL CAN Callback pointer definition.

Enumerations

enum  HAL_CAN_StateTypeDef {
  HAL_CAN_STATE_RESET = 0x00U, HAL_CAN_STATE_READY = 0x01U, HAL_CAN_STATE_LISTENING = 0x02U, HAL_CAN_STATE_SLEEP_PENDING = 0x03U,
  HAL_CAN_STATE_SLEEP_ACTIVE = 0x04U, HAL_CAN_STATE_ERROR = 0x05U
}
 HAL State structures definition. More...
enum  HAL_CAN_CallbackIDTypeDef {
  HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID = 0x00U, HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID = 0x01U, HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID = 0x02U, HAL_CAN_TX_MAILBOX0_ABORT_CB_ID = 0x03U,
  HAL_CAN_TX_MAILBOX1_ABORT_CB_ID = 0x04U, HAL_CAN_TX_MAILBOX2_ABORT_CB_ID = 0x05U, HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID = 0x06U, HAL_CAN_RX_FIFO0_FULL_CB_ID = 0x07U,
  HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID = 0x08U, HAL_CAN_RX_FIFO1_FULL_CB_ID = 0x09U, HAL_CAN_SLEEP_CB_ID = 0x0AU, HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID = 0x0BU,
  HAL_CAN_ERROR_CB_ID = 0x0CU, HAL_CAN_MSPINIT_CB_ID = 0x0DU, HAL_CAN_MSPDEINIT_CB_ID = 0x0EU
}
 HAL CAN common Callback ID enumeration definition. More...

Functions

HAL_StatusTypeDef HAL_CAN_Init (CAN_HandleTypeDef *hcan)
 Initializes the CAN peripheral according to the specified parameters in the CAN_InitStruct.
HAL_StatusTypeDef HAL_CAN_DeInit (CAN_HandleTypeDef *hcan)
 Deinitializes the CAN peripheral registers to their default reset values.
__weak void HAL_CAN_MspInit (CAN_HandleTypeDef *hcan)
 Initializes the CAN MSP.
__weak void HAL_CAN_MspDeInit (CAN_HandleTypeDef *hcan)
 DeInitializes the CAN MSP.
HAL_StatusTypeDef HAL_CAN_RegisterCallback (CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef CallbackID, void(*pCallback)(CAN_HandleTypeDef *_hcan))
 Register a CAN CallBack.
HAL_StatusTypeDef HAL_CAN_UnRegisterCallback (CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef CallbackID)
 Unregister a CAN CallBack.
HAL_StatusTypeDef HAL_CAN_ConfigFilter (CAN_HandleTypeDef *hcan, CAN_FilterTypeDef *sFilterConfig)
 Configures the CAN reception filter according to the specified parameters in the CAN_FilterInitStruct.
HAL_StatusTypeDef HAL_CAN_Start (CAN_HandleTypeDef *hcan)
 Start the CAN module.
HAL_StatusTypeDef HAL_CAN_Stop (CAN_HandleTypeDef *hcan)
 Stop the CAN module and enable access to configuration registers.
HAL_StatusTypeDef HAL_CAN_RequestSleep (CAN_HandleTypeDef *hcan)
 Request the sleep mode (low power) entry.
HAL_StatusTypeDef HAL_CAN_WakeUp (CAN_HandleTypeDef *hcan)
 Wake up from sleep mode.
uint32_t HAL_CAN_IsSleepActive (CAN_HandleTypeDef *hcan)
 Check is sleep mode is active.
HAL_StatusTypeDef HAL_CAN_AddTxMessage (CAN_HandleTypeDef *hcan, CAN_TxHeaderTypeDef *pHeader, uint8_t aData[], uint32_t *pTxMailbox)
 Add a message to the first free Tx mailbox and activate the corresponding transmission request.
HAL_StatusTypeDef HAL_CAN_AbortTxRequest (CAN_HandleTypeDef *hcan, uint32_t TxMailboxes)
 Abort transmission requests.
uint32_t HAL_CAN_GetTxMailboxesFreeLevel (CAN_HandleTypeDef *hcan)
 Return Tx Mailboxes free level: number of free Tx Mailboxes.
uint32_t HAL_CAN_IsTxMessagePending (CAN_HandleTypeDef *hcan, uint32_t TxMailboxes)
 Check if a transmission request is pending on the selected Tx Mailboxes.
uint32_t HAL_CAN_GetTxTimestamp (CAN_HandleTypeDef *hcan, uint32_t TxMailbox)
 Return timestamp of Tx message sent, if time triggered communication mode is enabled.
HAL_StatusTypeDef HAL_CAN_GetRxMessage (CAN_HandleTypeDef *hcan, uint32_t RxFifo, CAN_RxHeaderTypeDef *pHeader, uint8_t aData[])
 Get an CAN frame from the Rx FIFO zone into the message RAM.
uint32_t HAL_CAN_GetRxFifoFillLevel (CAN_HandleTypeDef *hcan, uint32_t RxFifo)
 Return Rx FIFO fill level.
HAL_StatusTypeDef HAL_CAN_ActivateNotification (CAN_HandleTypeDef *hcan, uint32_t ActiveITs)
 Enable interrupts.
HAL_StatusTypeDef HAL_CAN_DeactivateNotification (CAN_HandleTypeDef *hcan, uint32_t InactiveITs)
 Disable interrupts.
void HAL_CAN_IRQHandler (CAN_HandleTypeDef *hcan)
 Handles CAN interrupt request.
__weak void HAL_CAN_TxMailbox0CompleteCallback (CAN_HandleTypeDef *hcan)
 Transmission Mailbox 0 complete callback.
__weak void HAL_CAN_TxMailbox1CompleteCallback (CAN_HandleTypeDef *hcan)
 Transmission Mailbox 1 complete callback.
__weak void HAL_CAN_TxMailbox2CompleteCallback (CAN_HandleTypeDef *hcan)
 Transmission Mailbox 2 complete callback.
__weak void HAL_CAN_TxMailbox0AbortCallback (CAN_HandleTypeDef *hcan)
 Transmission Mailbox 0 Cancellation callback.
__weak void HAL_CAN_TxMailbox1AbortCallback (CAN_HandleTypeDef *hcan)
 Transmission Mailbox 1 Cancellation callback.
__weak void HAL_CAN_TxMailbox2AbortCallback (CAN_HandleTypeDef *hcan)
 Transmission Mailbox 2 Cancellation callback.
__weak void HAL_CAN_RxFifo0MsgPendingCallback (CAN_HandleTypeDef *hcan)
 Rx FIFO 0 message pending callback.
__weak void HAL_CAN_RxFifo0FullCallback (CAN_HandleTypeDef *hcan)
 Rx FIFO 0 full callback.
__weak void HAL_CAN_RxFifo1MsgPendingCallback (CAN_HandleTypeDef *hcan)
 Rx FIFO 1 message pending callback.
__weak void HAL_CAN_RxFifo1FullCallback (CAN_HandleTypeDef *hcan)
 Rx FIFO 1 full callback.
__weak void HAL_CAN_SleepCallback (CAN_HandleTypeDef *hcan)
 Sleep callback.
__weak void HAL_CAN_WakeUpFromRxMsgCallback (CAN_HandleTypeDef *hcan)
 WakeUp from Rx message callback.
__weak void HAL_CAN_ErrorCallback (CAN_HandleTypeDef *hcan)
 Error CAN callback.
HAL_CAN_StateTypeDef HAL_CAN_GetState (CAN_HandleTypeDef *hcan)
 Return the CAN state.
uint32_t HAL_CAN_GetError (CAN_HandleTypeDef *hcan)
 Return the CAN error code.
HAL_StatusTypeDef HAL_CAN_ResetError (CAN_HandleTypeDef *hcan)
 Reset the CAN error code.

Detailed Description

Header file of CAN HAL module.

Author:
MCD Application Team
Attention:

© Copyright (c) 2016 STMicroelectronics. All rights reserved.

This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause

Definition in file stm32f4xx_hal_can.h.