查看: 2603|回复: 5

[其他] CAN驱动 滤波设置

[复制链接]

该用户从未签到

1

主题

5

帖子

0

新手上路

Rank: 1

积分
11
最后登录
1970-1-1
发表于 2014-4-15 23:01:05 | 显示全部楼层 |阅读模式
  CAN驱动程序,设置滤波模式部分,2*32位模式,代码如下,这个   CAN2IDAR1 赋值为ID[22:15],与CAN2IDAR0(ID[28:21])有部分重复, 况且 CAN2IDAR1 中有两位应是SRR和IDE 。
                CAN2IDAR0 = (Uint8)(uiFilterID1 >> 21);  
                CAN2IDAR1 = (Uint8)(uiFilterID1 >> 15);
                CAN2IDAR2 = (Uint8)(uiFilterID1 >> 7);
                CAN2IDAR3 = (Uint8)(uiFilterID1 > 15)&0x07 + (Uint8)(uiFilterID1 >> 13)&0xE0; 同时CAN2IDMR1=0x18;
两个问题:a、上面这段代码的问题,我理解的是否正确?
                    b、解决方法是否可行?
谢谢!
我知道答案 目前已有5人回答
回复

使用道具 举报

该用户从未签到

0

主题

43

帖子

0

注册会员

Rank: 2

积分
159
最后登录
1970-1-1
发表于 2014-4-16 18:36:00 | 显示全部楼层

回复:CAN驱动 滤波设置

你用哪款芯片?如果你用mc56f8037的MSCAN模块,你可以用以下的MACRO. IDAR寄存器和IDR寄存器是比特位对应的。
 

#define CANID0_STAND(ID,RTR)  ((ID & 0x07F8)>>3)
#define CANID1_STAND(ID,RTR) (((ID & 0x0007)15) & 0x0000003FL) & 0x38)15) & 0x0000003FL) & 0x7))

#define CANID2_EXT(ID,RTR)  (((ID & 0x1FFFFFFFL)>>7) & 0xFF)
#define CANID3_EXT(ID,RTR)  ((((ID & 0x1FFFFFFFL) & 0x7F)
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

5

帖子

0

新手上路

Rank: 1

积分
11
最后登录
1970-1-1
 楼主| 发表于 2014-4-25 11:00:49 | 显示全部楼层

回复:CAN驱动 滤波设置

<div style="padding:5px;border:1px dashed #ccc;">回复第 2 楼 于2014-04-16 18:36:00发表:
你用哪款芯片?如果你用mc56f8037的MSCAN模块,你可以用以下的MACRO. IDAR寄存器和IDR寄存器是比特位对应的。
 

#define CANID0_STAND(ID,RTR)  ((ID & 0x07F8)>>3)
#define CANID1_STAND(ID,RTR) (((ID & 0x0007)15) & 0x0000003FL) & 0x38)15) & 0x0000003FL) & 0x7))

#define CANID2_EXT(ID,RTR)  (((ID & 0x1FFFFFFFL)>>7) & 0xFF)
#define CANID3_EXT(ID,RTR)  ((((ID & 0x1FFFFFFFL) & 0x7F)
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-4-25 14:53:38 | 显示全部楼层

    RE:CAN驱动 滤波设置

    接收配置的时候,要注意一下对比和掩码的问题.还有就是29位ID的正确位置.如果不能收到,建议用18FFFFFF来试试.
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40

    主题

    256

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    10386
    最后登录
    2023-4-17
    发表于 2014-4-26 12:02:13 | 显示全部楼层

    RE:CAN驱动 滤波设置

    安:您好,我遇到了不能接收报文的情况
    我把滤波器关闭,也还是接不到,而按您说这样18FFFFFF
    就可以接收到,请您帮忙解惑一下啊!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    151

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    396
    最后登录
    2020-6-22
    发表于 2015-11-16 15:28:41 | 显示全部楼层
    CAN ID接收的运算不对!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 10:49 , Processed in 0.098027 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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