日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]在使用STM32的CAN控制器進(jìn)行數(shù)據(jù)收發(fā),當(dāng)用到位屏蔽模式的時候,就要設(shè)置過濾器了,這個關(guān)系到是否能夠接收到想要的數(shù)據(jù)。下面針對幾種不同情況對CAN過濾器(Filter)進(jìn)行設(shè)置。CAN_FilterInitStructure.CAN_FilterM

在使用STM32的CAN控制器進(jìn)行數(shù)據(jù)收發(fā),當(dāng)用到位屏蔽模式的時候,就要設(shè)置過濾器了,這個關(guān)系到是否能夠接收到想要的數(shù)據(jù)。下面針對幾種不同情況對CAN過濾器(Filter)進(jìn)行設(shè)置。


CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;//標(biāo)示符屏蔽模式

CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;

1、對擴展數(shù)據(jù)幀進(jìn)行過濾:(只接收擴展數(shù)據(jù)幀)


CAN_FilterInitStructure.CAN_FilterIdHigh=(EXT_ID>>13)&0xFFFF;

CAN_FilterInitStructure.CAN_FilterIdLow=((EXT_ID<<3)|(0x04))&0xFFFF;

//這里設(shè)置|0x04(0b0100)就是為了IDE=1,RTR=0,

//這里也可以寫為(EXT_ID<<3)|CAN_ID_EXT|CAN_RTR_ROMOTE,效果一樣,下同

CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;

CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;

2、對擴展遠(yuǎn)程幀過濾:(只接收擴展遠(yuǎn)程幀)


CAN_FilterInitStructure.CAN_FilterIdHigh=(EXT_ID>>13)&0xFFFF;

CAN_FilterInitStructure.CAN_FilterIdLow=((EXT_ID<<3)|(0x06)&0xFFFF;

//這里設(shè)置|0x06(0b0110)就是為了IDE=1,RTR=1

CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;

CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;

3、對標(biāo)準(zhǔn)遠(yuǎn)程幀過濾:(只接收標(biāo)準(zhǔn)遠(yuǎn)程幀)


CAN_FilterInitStructure.CAN_FilterIdHigh=((STD_ID<<21)&0xFFFF0000)>>16;

CAN_FilterInitStructure.CAN_FilterIdLow=((STD_ID<<21)|(0x0))&0xFFFF;

//這里設(shè)置|0x0(0b0000)就是為了IDE=0,RTR=0

CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFE0;//0xFFE0表示要關(guān)注11位的STD_ID

CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0006;//0110,表示要關(guān)注IDE和RTR位,只接受標(biāo)準(zhǔn),不接受擴展

4、對標(biāo)準(zhǔn)數(shù)據(jù)幀過濾:(只接收標(biāo)準(zhǔn)數(shù)據(jù)幀)


CAN_FilterInitStructure.CAN_FilterIdHigh=((STD_ID<<21)&0xFFFF0000)>>16;

CAN_FilterInitStructure.CAN_FilterIdLow=((STD_ID_ID<<21)|(0x06))&0xFFFF;

//這里設(shè)置|0x02(0b0010)就是為了IDE=0,RTR=1

CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFE0;

CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0006;//只接受標(biāo)準(zhǔn)數(shù)據(jù)幀,不接受擴展數(shù)據(jù)幀



本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉