找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2254|回復(fù): 1
收起左側(cè)

關(guān)于CAN通信的過濾器配置

[復(fù)制鏈接]
ID:284051 發(fā)表于 2021-4-22 15:38 | 顯示全部樓層 |閱讀模式
        CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;        //32 ID
        CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
        CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32 MASK
        CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
這四條我看了很多資料,理論上明白了過濾器原理,但是寫不出來,請問有人能詳細(xì)說一下嗎?
FxR2用于指定需要關(guān)心哪些位,F(xiàn)xR1用于指定這些位的標(biāo)準(zhǔn)值    一位32位寄存器這種

回復(fù)

使用道具 舉報

ID:256945 發(fā)表于 2021-5-8 17:42 | 顯示全部樓層
2種情況
1.1個32位過濾器--標(biāo)示符屏蔽的情況----CAN_FxR1作ID,CAN_FxR2作屏蔽
2.2個32位過濾器--標(biāo)示符列表模式:CAN_FxR1和CAN_FxR2都作ID
對于1:
假如我們只想收到別人發(fā)過來的 ID 為 0x317 的標(biāo)準(zhǔn)數(shù)據(jù)幀:
0X317 二進(jìn)制位:011 0001 0111
那么可以這樣設(shè)置:
CAN_FxR1:0110 0010 111X XXXX XXXX XXXX XXXX X00X (ID)
CAN_FxR2:1111 1111 1110 0000 0000 0000 0000 0110 (屏蔽)
這里是我們設(shè)置的想要收到的數(shù)據(jù)幀的 ID。
這里為 1 的位,意味著收到的數(shù)據(jù)幀中相應(yīng)的 ID 位必須和設(shè)置的 ID 位一樣(必須匹
配)
對于情況2:
如果我們把 CAN_FxR1 和 CAN_FxR2 設(shè)置為下面的樣子。
CAN_FxR1:0110 0010 1110 0000 0000 0000 0000 0000 (ID)
CAN_FxR2:0000 0001 1110 0000 0000 0000 0000 0000 (ID)

這樣的話,就只能過濾出 ID 為 0x317(與 CAN_FxR1 必須一樣)和 0x00F(與 CAN_FxR2 必須一樣)兩種標(biāo)準(zhǔn)數(shù)據(jù)幀了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表