STM32G474xx HAL用户手册
宏定义 | 函数 | 变量
stm32g4xx_hal_fdcan.c文件参考

FDCAN HAL模块驱动程序。该文件提供固件函数,用于管理灵活数据速率控制器局域网(FDCAN)外设的以下功能: + 初始化和去初始化函数 + IO操作函数 + 外设配置和控制函数 + 外设状态和错误函数。 更多...

#include "stm32g4xx_hal.h"

转到此文件的源代码。

宏定义

#define FDCAN_TIMEOUT_VALUE   10U
#define FDCAN_TX_EVENT_FIFO_MASK   (FDCAN_IR_TEFL | FDCAN_IR_TEFF | FDCAN_IR_TEFN)
#define FDCAN_RX_FIFO0_MASK   (FDCAN_IR_RF0L | FDCAN_IR_RF0F | FDCAN_IR_RF0N)
#define FDCAN_RX_FIFO1_MASK   (FDCAN_IR_RF1L | FDCAN_IR_RF1F | FDCAN_IR_RF1N)
#define FDCAN_ERROR_MASK   (FDCAN_IR_ELO | FDCAN_IR_WDI | FDCAN_IR_PEA | FDCAN_IR_PED | FDCAN_IR_ARA)
#define FDCAN_ERROR_STATUS_MASK   (FDCAN_IR_EP | FDCAN_IR_EW | FDCAN_IR_BO)
#define FDCAN_ELEMENT_MASK_STDID   ((uint32_t)0x1FFC0000U) /* 标准标识符 */
#define FDCAN_ELEMENT_MASK_EXTID   ((uint32_t)0x1FFFFFFFU) /* 扩展标识符 */
#define FDCAN_ELEMENT_MASK_RTR   ((uint32_t)0x20000000U) /* 远程传输请求 */
#define FDCAN_ELEMENT_MASK_XTD   ((uint32_t)0x40000000U) /* 扩展标识符 */
#define FDCAN_ELEMENT_MASK_ESI   ((uint32_t)0x80000000U) /* 错误状态指示器 */
#define FDCAN_ELEMENT_MASK_TS   ((uint32_t)0x0000FFFFU) /* 时间戳 */
#define FDCAN_ELEMENT_MASK_DLC   ((uint32_t)0x000F0000U) /* 数据长度码 */
#define FDCAN_ELEMENT_MASK_BRS   ((uint32_t)0x00100000U) /* 比特率切换 */
#define FDCAN_ELEMENT_MASK_FDF   ((uint32_t)0x00200000U) /* FD格式 */
#define FDCAN_ELEMENT_MASK_EFC   ((uint32_t)0x00800000U) /* 事件FIFO控制 */
#define FDCAN_ELEMENT_MASK_MM   ((uint32_t)0xFF000000U) /* 消息标记 */
#define FDCAN_ELEMENT_MASK_FIDX   ((uint32_t)0x7F000000U) /* 过滤器索引 */
#define FDCAN_ELEMENT_MASK_ANMF   ((uint32_t)0x80000000U) /* 接受的非匹配帧 */
#define FDCAN_ELEMENT_MASK_ET   ((uint32_t)0x00C00000U) /* 事件类型 */
#define SRAMCAN_FLS_NBR   (28U) /* 最大过滤器列表标准号 */
#define SRAMCAN_FLE_NBR   ( 8U) /* 最大过滤器列表扩展号 */
#define SRAMCAN_RF0_NBR   ( 3U) /* RX FIFO 0元素号 */
#define SRAMCAN_RF1_NBR   ( 3U) /* RX FIFO 1元素号 */
#define SRAMCAN_TEF_NBR   ( 3U) /* TX事件FIFO元素号 */
#define SRAMCAN_TFQ_NBR   ( 3U) /* TX FIFO/Queue元素号 */
#define SRAMCAN_FLS_SIZE   ( 1U * 4U) /* 过滤器标准元素字节大小 */
#define SRAMCAN_FLE_SIZE   ( 2U * 4U) /* 过滤器扩展元素字节大小 */
#define SRAMCAN_RF0_SIZE   (18U * 4U) /* RX FIFO 0元素字节大小 */
#define SRAMCAN_RF1_SIZE   (18U * 4U) /* RX FIFO 1元素字节大小 */
#define SRAMCAN_TEF_SIZE   ( 2U * 4U) /* TX事件FIFO元素字节大小 */
#define SRAMCAN_TFQ_SIZE   (18U * 4U) /* TX FIFO/Queue元素字节大小 */
#define SRAMCAN_FLSSA
#define SRAMCAN_FLESA
#define SRAMCAN_RF0SA   ((uint32_t)(SRAMCAN_FLESA + (SRAMCAN_FLE_NBR * SRAMCAN_FLE_SIZE))) /* Rx FIFO 0起始地址 */
#define SRAMCAN_RF1SA   ((uint32_t)(SRAMCAN_RF0SA + (SRAMCAN_RF0_NBR * SRAMCAN_RF0_SIZE))) /* Rx FIFO 1起始地址 */
#define SRAMCAN_TEFSA
#define SRAMCAN_TFQSA
#define SRAMCAN_SIZE   ((uint32_t)(SRAMCAN_TFQSA + (SRAMCAN_TFQ_NBR * SRAMCAN_TFQ_SIZE))) /* 消息RAM大小 */

函数

static void FDCAN_CalcultateRamBlockAddresses (FDCAN_HandleTypeDef *hfdcan)
 计算每个RAM块的起始地址和大小。
static void FDCAN_CopyMessageToRAM (const FDCAN_HandleTypeDef *hfdcan, const FDCAN_TxHeaderTypeDef *pTxHeader, const uint8_t *pTxData, uint32_t BufferIndex)
 将Tx消息复制到消息RAM。
HAL_StatusTypeDef HAL_FDCAN_Init (FDCAN_HandleTypeDef *hfdcan)
 根据FDCAN_InitTypeDef结构中指定的参数初始化FDCAN外设。
HAL_StatusTypeDef HAL_FDCAN_DeInit (FDCAN_HandleTypeDef *hfdcan)
 将FDCAN外设寄存器复位到默认复位值。
__weak void HAL_FDCAN_MspInit (FDCAN_HandleTypeDef *hfdcan)
 初始化FDCAN MSP。
__weak void HAL_FDCAN_MspDeInit (FDCAN_HandleTypeDef *hfdcan)
 反初始化FDCAN MSP。
HAL_StatusTypeDef HAL_FDCAN_EnterPowerDownMode (FDCAN_HandleTypeDef *hfdcan)
 使FDCAN外设进入睡眠模式。
HAL_StatusTypeDef HAL_FDCAN_ExitPowerDownMode (FDCAN_HandleTypeDef *hfdcan)
 退出掉电模式。
HAL_StatusTypeDef HAL_FDCAN_RegisterCallback (FDCAN_HandleTypeDef