|
STM32G474xx HAL用户手册
|
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 |