介紹
本應用說明描述了ST10F27x/ST10F25x的CAN中斷驅動程序,并提供了可用于定義中斷方案和寫入中斷驅動程序的編程示例。兩個C-CAN模塊在ST10F27x/ST10F25x上實現(xiàn),映射在XBUS上。
描述了中斷源、識別中斷源的方式以及處理中斷的兩種方法:一種是使用CAN模塊的硬件功能,另一種是通過輪詢內部源。
通過CAN硬件功能對CAN中斷驅動程序進行編程使用每個消息對象的RXIE和TXIE位。所有32個消息對象都是通過接口寄存器訪問的。每個模塊可使用兩組寄存器,例如CANxIF1寄存器可以用于從消息對象讀取,而CANxIF2寄存器可以用于寫入消息對象。每當消息對象發(fā)送或接收消息時,都會根據(jù)其優(yōu)先級(基于IntId的值)為相應的中斷提供服務。這種方法需要最小的CPU開銷,是大多數(shù)應用程序的首選方法。
每當成功傳輸或接收時,CAN輪詢都會產生中斷。
輪詢的CPU開銷很高,因為每次在CAN總線上確認消息時,CPU都會中斷。因此,僅建議小型網絡使用輪詢對中斷驅動程序進行編程。
為每種方法提供了示例程序作為示例。