新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32-CAN總線濾波器的使用

        STM32-CAN總線濾波器的使用

        作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
        stm32的屏蔽濾波功能對ID是有要求的,在STM32 這里ID必須進行移位處理.
        對照下表:
        我們這里全部設(shè)置成1,也就是只接受CAN_Filter中設(shè)置的節(jié)點的數(shù)據(jù)
        STM32共有14組過濾器,用以對接收到的幀進行過濾。每組過濾器包括了2個可配置的32位寄存器:CAN_FxR0和CAN_FxR1。對于過濾器組,可以將其配置成屏蔽位模式,這樣CAN_FxR0中保存的就是標(biāo)識符匹配值,CAN_FxR1中保存的是屏蔽碼,即CAN_FxR1中如果某一位為1,則CAN_FxR0中相應(yīng)的位必須與收到的幀的標(biāo)志符中的相應(yīng)位吻合才能通過過濾器;CAN_FxR1中為0的位表示CAN_FxR0中的相應(yīng)位可不必與收到的幀進行匹配。過濾器組還可以被配置成標(biāo)識符列表模式,此時CAN_FxR0和CAN_FxR1中的都是要匹配的標(biāo)識符,收到的幀的標(biāo)識符必須與其中的一個吻合才能通過過濾。
        注意:CAN_FilterIdHigh是指高16位CAN_FilterIdLow是低16位應(yīng)該將需要得到的幀的和過濾器的設(shè)置值坐對齊起。
        例如:

        CAN_FilterInitStructure.CAN_FilterNumber=0;//第一組過濾器
        CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;//屏蔽位模式
        CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;//32位
        CAN_FilterInitStructure.CAN_FilterIdHigh=(0x0635<<5);//接收ID為635的消息 11位幀ID 標(biāo)準(zhǔn)幀因此左移5
        CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
        CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xffff;//
        CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xffff;
        CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;//第一組過濾器指向FIFO0
        CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
        CAN_FilterInit(&CAN_FilterInitStructure);
        CAN_FilterInitStructure.CAN_FilterNumber=1;//第二組過濾器
        CAN_FilterInitStructure.CAN_FilterIdHigh=(0x06DB<<5);//接收ID位6db的消息
        CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
        CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xffff;
        CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xffff;
        CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO1;//第二組過濾器指向FIFO1
        CAN_FilterInit(&CAN_FilterInitStructure);
        CAN_ITConfig(CAN_IT_FMP0,ENABLE);
        CAN_ITConfig(CAN_IT_FMP1,ENABLE);


        關(guān)鍵詞: STM32CAN總線濾波

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 贞丰县| 达拉特旗| 齐齐哈尔市| 紫云| 神农架林区| 梓潼县| 定兴县| 吴旗县| 安康市| 婺源县| 阿拉善左旗| 静海县| 宁蒗| 固原市| 吉木萨尔县| 通江县| 札达县| 百色市| 揭阳市| 奉新县| 搜索| 黔江区| 阳新县| 宁河县| 海南省| 徐水县| 沐川县| 沈阳市| 囊谦县| 山东省| 遵义县| 尉氏县| 察隅县| 孝义市| 东至县| 黄平县| 万源市| 陇西县| 尼木县| 定结县| 龙陵县|