STM32F439xx 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 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_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__)   ((__HANDLE__)->State = HAL_CAN_STATE_RESET)
 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_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.

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...

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_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

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file stm32f4xx_hal_can.h.