新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于STM32中CAN中斷的使用

        關于STM32中CAN中斷的使用

        作者: 時間:2016-11-28 來源:網絡 收藏
        “如果你用的CAN引腳是PA11和PA12,接收中斷用CAN1_RX0_IRQn。如果CAN引腳用的是PB8和PB9,也就是用重定義的引腳,接收中斷用CAN1_RX1_IRQn。由于PA11和PA12也是USB的引腳,所以非互聯型且帶CAN控制器的微控制器的庫文件在起名字時用了USB_LP_CAN1_RX0_IRQn。”具體的定義可以參考stm32F10x.h文件,其中對不同型號的中斷有具體的定義。

        本文引用地址:http://www.104case.com/article/201611/322717.htm

        示例如下:

        1. 配置過濾器

        CAN_FilterInitStructure.CAN_FilterNumber = 0;

        CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;

        CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;

        CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;

        CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;

        CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
        CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;

        CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FIFO0;//關聯FIFO0

        CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;

        CAN_FilterInit(&CAN_FilterInitStructure);


        CAN_FilterInitStructure.CAN_FilterNumber = 14;

        CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FIFO1;//關聯FIFO1

        CAN_FilterInit(&CAN_FilterInitStructure);

        2. 開啟CAN中斷

        CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);

        CAN_ITConfig(CAN1, CAN_IT_FMP1, ENABLE);

        CAN_ITConfig(CAN2, CAN_IT_FMP0, ENABLE);

        CAN_ITConfig(CAN2, CAN_IT_FMP1, ENABLE);

        3. 中斷處理函數


        void CAN1_RX0_IRQHandler(void)

        {
        CAN_Receive(CAN1, CAN_FIFO0, &CAN1_RxMsg);

        //
        }


        void CAN1_RX1_IRQHandler(void)

        {
        CAN_Receive(CAN1, CAN_FIFO1, &CAN1_RxMsg);

        //
        }

        void CAN2_RX0_IRQHandler(void)

        {

        CAN_Receive(CAN2, CAN_FIFO0, &CAN2_RxMsg);
        //
        }


        void CAN2_RX1_IRQHandler(void)

        {
        CAN_Receive(CAN2, CAN_FIFO1, &CAN2_RxMsg);
        //
        }



        關鍵詞: STM32CAN中

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 台南市| 忻城县| 满洲里市| 江油市| 四川省| 古交市| 莱阳市| 尉犁县| 苍山县| 汕尾市| 雷波县| 江达县| 麻栗坡县| 保德县| 梅河口市| 东宁县| 新源县| 任丘市| 忻州市| 滦南县| 宜兰县| 巴里| 平南县| 九江县| 女性| 隆昌县| 丹阳市| 绥江县| 二连浩特市| 晋州市| 开阳县| 怀安县| 抚州市| 玉门市| 通河县| 福鼎市| 雷州市| 神农架林区| 翼城县| 阳原县| 武安市|