你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32G431KBU3不进FDCAN中断

[复制链接]
xydmhy 提问时间:2024-6-17 15:31 / 已解决

求大佬看一下,FDCAN使用传统CAN模式,能发送数据,但是不能进入接收中断

image.png

代码配置了两处:

void FDCAN1_Config(void) { FDCAN_FilterTypeDef sFilterConfig; / Configure Rx filter / sFilterConfig.IdType = FDCAN_STANDARD_ID; sFilterConfig.FilterIndex = 1; sFilterConfig.FilterType = FDCAN_FILTER_RANGE; sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0; sFilterConfig.FilterID1 = 0x00000000; sFilterConfig.FilterID2 = 0x000007FF; if (HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig) != HAL_OK) { Error_Handler(); }

sFilterConfig.IdType = FDCAN_EXTENDED_ID; sFilterConfig.FilterIndex = 0; sFilterConfig.FilterType = FDCAN_FILTER_RANGE; sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0; sFilterConfig.FilterID1 = 0x00000000; sFilterConfig.FilterID2 = 0x1FFFFFFF; if (HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig) != HAL_OK) { Error_Handler(); }

/ Configure global filter: Filter all remote frames with STD and EXT ID Reject non matching frames with STD ID and EXT ID / if (HAL_FDCAN_ConfigGlobalFilter(&hfdcan1, FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE) != HAL_OK) { Error_Handler(); }

/ Activate Rx FIFO 0 new message notification on both FDCAN instances / if (HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK) { Error_Handler(); }

// if (HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_BUS_OFF, 0) != HAL_OK) // { // Error_Handler(); // }

/ Tx Config/ TxHeader1.Identifier = 0x000000000; // CAN ID TxHeader1.IdType = FDCAN_STANDARD_ID; // 标准ID TxHeader1.TxFrameType = FDCAN_DATA_FRAME; TxHeader1.DataLength = FDCAN_DLC_BYTES_8; TxHeader1.ErrorStateIndicator = FDCAN_ESI_PASSIVE; TxHeader1.BitRateSwitch = FDCAN_BRS_OFF; TxHeader1.FDFormat = FDCAN_FD_CAN; // CANFD TxHeader1.TxEventFifoControl = FDCAN_NO_TX_EVENTS; TxHeader1.MessageMarker = 0;

/ Configure and enable Tx Delay Compensation, required for BRS mode. TdcOffset default recommended value: DataTimeSeg1 DataPrescaler TdcFilter default recommended value: 0 / HAL_FDCAN_ConfigTxDelayCompensation(&hfdcan1, hfdcan1.Init.DataPrescaler hfdcan1.Init.DataTimeSeg1, 0); HAL_FDCAN_EnableTxDelayCompensation(&hfdcan1);

/ Start the FDCAN module / if (HAL_FDCAN_Start(&hfdcan1) != HAL_OK) { Error_Handler(); } }

void FDCAN1_IT0_IRQHandler(void) { / USER CODE BEGIN FDCAN1_IT0_IRQn 0 /

/ USER CODE END FDCAN1_IT0_IRQn 0 / HAL_FDCAN_IRQHandler(&hfdcan1); / USER CODE BEGIN FDCAN1_IT0_IRQn 1 / HAL_FDCAN_GetRxMessage(&hfdcan1, FDCAN_RX_FIFO0, &RxHeader1, can1_rxbuf); / USER CODE END FDCAN1_IT0_IRQn 1 / }

收藏 评论6 发布时间:2024-6-17 15:31

举报

6个回答
xmshao 最优答案 回答时间:2024-6-18 18:01:03
在STM32G4的Cube库例程里有关于FDCAN的演示例程,可以参考下。
可以先基于回环模式测试OK后,再行Normal模式实测验证。
xydmhy 回答时间:2024-6-17 15:34:48

image.png

image.png

image.png

image.png

feizibaba 回答时间:2024-9-2 12:35:11

xmshao 发表于 2024-6-18 18:01
在STM32G4的Cube库例程里有关于FDCAN的演示例程,可以参考下。
可以先基于回环模式测试OK后,再行Normal模 ...

案例代码哪里能找到

xmshao 回答时间:2024-9-2 13:58:17

feizibaba 发表于 2024-9-2 12:35
案例代码哪里能找到

image.png

G4系列Cube库例程就有。

image.png
feizibaba 回答时间:2024-9-2 15:24:39

xmshao 发表于 2024-9-2 13:58
![image.png](data/attachment/forum/202409/02/135751c5ii856wcwkzr6jc.png?imageMogr2/auto-orient ...

[md]我想问一下,我跟案例的回环模式大差不差,屏幕上显示发送出去了,但是USBCANfd无法接收到数据

xmshao 回答时间:2024-9-2 16:18:01

feizibaba 发表于 2024-9-2 15:24
我想问一下,我跟案例的回环模式大差不差,屏幕上显示发送出去了,但是USBCANfd无法接收到数据
...

回环模式主要验证基本的CAN配置,Normal模式时重点检查硬件线路,包括管脚的连接等。

相关器件手册也研究下,往往一些小细节被忽视了出不来预期结果。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版