硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3063|回复: 1
收起左侧

[CAN/FDCAN] STM32H7的can1 can2都开启了,如何实现can1,can2的ram 平分

[复制链接]

7

主题

21

回帖

42

积分

新手上路

积分
42
QQ
发表于 2021-5-18 00:34:19 | 显示全部楼层 |阅读模式
各位大佬,在作 stm32h7 can功能调试是有点疑问,暂时没在到根据,
应为我用的场景是 can1 can2都开启了,所以希望当前can1,can2的ram 平分。

1:网上基本查到can2的
RAMOffset应如下设置, 实际测试 RAMOffset = 0x600,  怎么不是 2560*4/2  的平分呢?FDCAN2_Handler.Init.MessageRAMOffset = FDCAN1_Handler.msgRam.EndAddress-SRAMCAN_BASE

2:还有一个细节。 64个过滤器我也想平分
    除了RAMOffset需要注意外,下面的
    FDCAN2_Handler.Init.ExtFiltersNbr 必须赋值为64,系统数据进入才ok,   
    没有找到 FDCAN2_Handler.Init.ExtFiltersNbr 必须赋值为64的依据      

////////////////////////////////////////////////////////////////////////
    FDCAN1_Handler.Init.ExtFiltersNbr       = 32,
    FDCAN1_Handler.Init.RxFifo0ElmtsNbr     = 0,
    FDCAN1_Handler.Init.RxFifo0ElmtSize     = FDCAN_DATA_BYTES_8,
    FDCAN1_Handler.Init.RxFifo1ElmtsNbr     = 32,
    FDCAN1_Handler.Init.RxFifo1ElmtSize     = FDCAN_DATA_BYTES_8,

    FDCAN2_Handler.Init.ExtFiltersNbr       = 64,
    FDCAN2_Handler.Init.RxFifo0ElmtsNbr     = 0,
    FDCAN2_Handler.Init.RxFifo0ElmtSize     = FDCAN_DATA_BYTES_8,
    FDCAN2_Handler.Init.RxFifo1ElmtsNbr     = 32,
    FDCAN2_Handler.Init.RxFifo1ElmtSize     = FDCAN_DATA_BYTES_8,

////////////////////////////////////////////////////////////////////////

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107070
QQ
发表于 2021-5-18 07:54:36 | 显示全部楼层
采用CMSIS-Driver方案,一目了然

STM32H7 FD CAN中消息RAM在CAN1和CAN2上合理分配方法
http://www.armbbs.cn/forum.php?m ... 3560&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 10:14 , Processed in 0.146568 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表