STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
Data Structures | Macros | Enumerations | Functions
stm32f7xx_hal_can.h File Reference

Header file of CAN HAL module. More...

#include "stm32f7xx_hal_def.h"

Go to the source code of this file.

Data Structures

struct  CAN_InitTypeDef
 CAN init structure definition. More...
 
struct  CAN_FilterConfTypeDef
 CAN filter configuration structure definition. More...
 
struct  CanTxMsgTypeDef
 CAN Tx message structure definition. More...
 
struct  CanRxMsgTypeDef
 CAN Rx message structure definition. More...
 
struct  CAN_HandleTypeDef
 CAN handle Structure definition. More...
 

Macros

#define HAL_CAN_ERROR_NONE   0x00U
 
#define HAL_CAN_ERROR_EWG   0x01U
 
#define HAL_CAN_ERROR_EPV   0x02U
 
#define HAL_CAN_ERROR_BOF   0x04U
 
#define HAL_CAN_ERROR_STF   0x08U
 
#define HAL_CAN_ERROR_FOR   0x10U
 
#define HAL_CAN_ERROR_ACK   0x20U
 
#define HAL_CAN_ERROR_BR   0x40U
 
#define HAL_CAN_ERROR_BD   0x80U
 
#define HAL_CAN_ERROR_CRC   0x100U
 
#define CAN_INITSTATUS_FAILED   ((uint8_t)0x00U)
 
#define CAN_INITSTATUS_SUCCESS   ((uint8_t)0x01U)
 
#define CAN_MODE_NORMAL   ((uint32_t)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   ((uint32_t)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   ((uint32_t)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   ((uint32_t)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   ((uint8_t)0x00U)
 
#define CAN_FILTERMODE_IDLIST   ((uint8_t)0x01U)
 
#define CAN_FILTERSCALE_16BIT   ((uint8_t)0x00U)
 
#define CAN_FILTERSCALE_32BIT   ((uint8_t)0x01U)
 
#define CAN_FILTER_FIFO0   ((uint8_t)0x00U)
 
#define CAN_FILTER_FIFO1   ((uint8_t)0x01U)
 
#define CAN_ID_STD   ((uint32_t)0x00000000U)
 
#define CAN_ID_EXT   ((uint32_t)0x00000004U)
 
#define CAN_RTR_DATA   ((uint32_t)0x00000000U)
 
#define CAN_RTR_REMOTE   ((uint32_t)0x00000002U)
 
#define CAN_FIFO0   ((uint8_t)0x00U)
 
#define CAN_FIFO1   ((uint8_t)0x01U)
 
#define CAN_FLAG_RQCP0   ((uint32_t)0x00000500U)
 
#define CAN_FLAG_RQCP1   ((uint32_t)0x00000508U)
 
#define CAN_FLAG_RQCP2   ((uint32_t)0x00000510U)
 
#define CAN_FLAG_TXOK0   ((uint32_t)0x00000501U)
 
#define CAN_FLAG_TXOK1   ((uint32_t)0x00000509U)
 
#define CAN_FLAG_TXOK2   ((uint32_t)0x00000511U)
 
#define CAN_FLAG_TME0   ((uint32_t)0x0000051AU)
 
#define CAN_FLAG_TME1   ((uint32_t)0x0000051BU)
 
#define CAN_FLAG_TME2   ((uint32_t)0x0000051CU)
 
#define CAN_FLAG_FF0   ((uint32_t)0x00000203U)
 
#define CAN_FLAG_FOV0   ((uint32_t)0x00000204U)
 
#define CAN_FLAG_FF1   ((uint32_t)0x00000403U)
 
#define CAN_FLAG_FOV1   ((uint32_t)0x00000404U)
 
#define CAN_FLAG_INAK   ((uint32_t)0x00000100U)
 
#define CAN_FLAG_SLAK   ((uint32_t)0x00000101U)
 
#define CAN_FLAG_ERRI   ((uint32_t)0x00000102U)
 
#define CAN_FLAG_WKU   ((uint32_t)0x00000103U)
 
#define CAN_FLAG_SLAKI   ((uint32_t)0x00000104U)
 
#define CAN_FLAG_EWG   ((uint32_t)0x00000300U)
 
#define CAN_FLAG_EPV   ((uint32_t)0x00000301U)
 
#define CAN_FLAG_BOF   ((uint32_t)0x00000302U)
 
#define CAN_IT_TME   ((uint32_t)CAN_IER_TMEIE)
 
#define CAN_IT_FMP0   ((uint32_t)CAN_IER_FMPIE0)
 
#define CAN_IT_FF0   ((uint32_t)CAN_IER_FFIE0)
 
#define CAN_IT_FOV0   ((uint32_t)CAN_IER_FOVIE0)
 
#define CAN_IT_FMP1   ((uint32_t)CAN_IER_FMPIE1)
 
#define CAN_IT_FF1   ((uint32_t)CAN_IER_FFIE1)
 
#define CAN_IT_FOV1   ((uint32_t)CAN_IER_FOVIE1)
 
#define CAN_IT_WKU   ((uint32_t)CAN_IER_WKUIE)
 
#define CAN_IT_SLK   ((uint32_t)CAN_IER_SLKIE)
 
#define CAN_IT_EWG   ((uint32_t)CAN_IER_EWGIE)
 
#define CAN_IT_EPV   ((uint32_t)CAN_IER_EPVIE)
 
#define CAN_IT_BOF   ((uint32_t)CAN_IER_BOFIE)
 
#define CAN_IT_LEC   ((uint32_t)CAN_IER_LECIE)
 
#define CAN_IT_ERR   ((uint32_t)CAN_IER_ERRIE)
 
#define CAN_TXMAILBOX_0   ((uint8_t)0x00U)
 
#define CAN_TXMAILBOX_1   ((uint8_t)0x01U)
 
#define CAN_TXMAILBOX_2   ((uint8_t)0x02U)
 
#define __HAL_CAN_RESET_HANDLE_STATE(__HANDLE__)   ((__HANDLE__)->State = HAL_CAN_STATE_RESET)
 Reset CAN handle state. More...
 
#define __HAL_CAN_ENABLE_IT(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->IER) |= (__INTERRUPT__))
 Enable the specified CAN interrupts. More...
 
#define __HAL_CAN_DISABLE_IT(__HANDLE__, __INTERRUPT__)   (((__HANDLE__)->Instance->IER) &= ~(__INTERRUPT__))
 Disable the specified CAN interrupts. More...
 
#define __HAL_CAN_MSG_PENDING(__HANDLE__, __FIFONUMBER__)
 Return the number of pending received messages. More...
 
#define __HAL_CAN_GET_FLAG(__HANDLE__, __FLAG__)
 Check whether the specified CAN flag is set or not. More...
 
#define __HAL_CAN_CLEAR_FLAG(__HANDLE__, __FLAG__)
 Clear the specified CAN pending flag. More...
 
#define __HAL_CAN_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)   ((((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
 Check if the specified CAN interrupt source is enabled or disabled. More...
 
#define __HAL_CAN_TRANSMIT_STATUS(__HANDLE__, __TRANSMITMAILBOX__)
 Check the transmission status of a CAN Frame. More...
 
#define __HAL_CAN_FIFO_RELEASE(__HANDLE__, __FIFONUMBER__)
 Release the specified receive FIFO. More...
 
#define __HAL_CAN_CANCEL_TRANSMIT(__HANDLE__, __TRANSMITMAILBOX__)
 Cancel a transmit request. More...
 
#define __HAL_CAN_DBG_FREEZE(__HANDLE__, __NEWSTATE__)
 Enable or disable the DBG Freeze for CAN. More...
 
#define CAN_TXSTATUS_NOMAILBOX   ((uint8_t)0x04U)
 
#define CAN_FLAG_MASK   ((uint32_t)0x000000FFU)
 
#define IS_CAN_MODE(MODE)
 
#define IS_CAN_SJW(SJW)
 
#define IS_CAN_BS1(BS1)   ((BS1) <= CAN_BS1_16TQ)
 
#define IS_CAN_BS2(BS2)   ((BS2) <= CAN_BS2_8TQ)
 
#define IS_CAN_PRESCALER(PRESCALER)   (((PRESCALER) >= 1) && ((PRESCALER) <= 1024))
 
#define IS_CAN_FILTER_NUMBER(NUMBER)   ((NUMBER) <= 27)
 
#define IS_CAN_FILTER_MODE(MODE)
 
#define IS_CAN_FILTER_SCALE(SCALE)
 
#define IS_CAN_FILTER_FIFO(FIFO)
 
#define IS_CAN_BANKNUMBER(BANKNUMBER)   ((BANKNUMBER) <= 28)
 
#define IS_CAN_TRANSMITMAILBOX(TRANSMITMAILBOX)   ((TRANSMITMAILBOX) <= ((uint8_t)0x02))
 
#define IS_CAN_STDID(STDID)    ((STDID) <= ((uint32_t)0x7FF))
 
#define IS_CAN_EXTID(EXTID)    ((EXTID) <= ((uint32_t)0x1FFFFFFF))
 
#define IS_CAN_DLC(DLC)    ((DLC) <= ((uint8_t)0x08))
 
#define IS_CAN_IDTYPE(IDTYPE)
 
#define IS_CAN_RTR(RTR)   (((RTR) == CAN_RTR_DATA) || ((RTR) == CAN_RTR_REMOTE))
 
#define IS_CAN_FIFO(FIFO)   (((FIFO) == CAN_FIFO0) || ((FIFO) == CAN_FIFO1))
 

Enumerations

enum  HAL_CAN_StateTypeDef {
  HAL_CAN_STATE_RESET = 0x00U, HAL_CAN_STATE_READY = 0x01U, HAL_CAN_STATE_BUSY = 0x02U, HAL_CAN_STATE_BUSY_TX = 0x12U,
  HAL_CAN_STATE_BUSY_RX = 0x22U, HAL_CAN_STATE_BUSY_TX_RX = 0x32U, HAL_CAN_STATE_TIMEOUT = 0x03U, HAL_CAN_STATE_ERROR = 0x04U
}
 HAL State structures definition. More...
 

Functions

HAL_StatusTypeDef HAL_CAN_Init (CAN_HandleTypeDef *hcan)
 
HAL_StatusTypeDef HAL_CAN_ConfigFilter (CAN_HandleTypeDef *hcan, CAN_FilterConfTypeDef *sFilterConfig)
 
HAL_StatusTypeDef HAL_CAN_DeInit (CAN_HandleTypeDef *hcan)
 
void HAL_CAN_MspInit (CAN_HandleTypeDef *hcan)
 
void HAL_CAN_MspDeInit (CAN_HandleTypeDef *hcan)
 
HAL_StatusTypeDef HAL_CAN_Transmit (CAN_HandleTypeDef *hcan, uint32_t Timeout)
 
HAL_StatusTypeDef HAL_CAN_Transmit_IT (CAN_HandleTypeDef *hcan)
 
HAL_StatusTypeDef HAL_CAN_Receive (CAN_HandleTypeDef *hcan, uint8_t FIFONumber, uint32_t Timeout)
 
HAL_StatusTypeDef HAL_CAN_Receive_IT (CAN_HandleTypeDef *hcan, uint8_t FIFONumber)
 
HAL_StatusTypeDef HAL_CAN_Sleep (CAN_HandleTypeDef *hcan)
 
HAL_StatusTypeDef HAL_CAN_WakeUp (CAN_HandleTypeDef *hcan)
 
void HAL_CAN_IRQHandler (CAN_HandleTypeDef *hcan)
 
void HAL_CAN_TxCpltCallback (CAN_HandleTypeDef *hcan)
 
void HAL_CAN_RxCpltCallback (CAN_HandleTypeDef *hcan)
 
void HAL_CAN_ErrorCallback (CAN_HandleTypeDef *hcan)
 
uint32_t HAL_CAN_GetError (CAN_HandleTypeDef *hcan)
 
HAL_CAN_StateTypeDef HAL_CAN_GetState (CAN_HandleTypeDef *hcan)
 

Detailed Description

Header file of CAN HAL module.

Author
MCD Application Team
Version
V1.1.0
Date
22-April-2016
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 stm32f7xx_hal_can.h.