「如果你用的can引腳是pa11和pa12,接收中斷用can1_rx0_irqn。如果can引腳用的是pb8和pb9,也就是用重定義的引腳,接收中斷用can1_rx1_irqn。由於pa11和pa12也是usb的引腳,所以非互聯型且帶can控制器的微控制器的庫檔案在起名字時用了usb_lp_can1_rx0_irqn。」具體的定義可以參考stm32f10x.h檔案,其中對不同型號的中斷有具體的定義。
示例如下:
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)
void can1_rx1_irqhandler(void)
void can2_rx0_irqhandler(void)
void can2_rx1_irqhandler(void)
STM32中斷的使能
lib v3.0.0 的標頭檔案misc.c的void nvic init nvic inittypedef nvic initstruct 說 enable the selected irq channels nvic iser nvic initstruct nvic irqchannel 0x...
關於STM32空閒中斷
有一次做乙個東西,為了盡量不占用cpu的處理資料時間,所以就使用dma接收串列埠的資料,但是呢問題來了.怎麼樣才能確定接收到了一條完整的資料了,我們都知道只要開啟dma 那傢伙就不停的把接收的資料放到我們指定的地方.只要接收到一條完整的資料我就該去處理了 關於空閒中斷,就是說每接收到一條完整的資料就...
stm32中斷優先順序 STM32中斷系統
stm32 中斷非常強大,幾乎每個外設都可以產生中斷,因此這裡我們單獨使用一章來介紹它,為後面介紹外設中斷做鋪墊。學習本章可以參考 stm32f10x中文參考手冊 9 中斷和事件章節,cortex m3 權威指南 中文 chpt08 nvic與中斷控制章節。中斷概念 在學習 51 微控制器時,我們就...