介绍
本应用说明描述了ST10F27x/ST10F25x的CAN中断驱动程序,并提供了可用于定义中断方案和写入中断驱动程序的编程示例。两个C-CAN模块在ST10F27x/ST10F25x上实现,映射在XBUS上。
描述了中断源、识别中断源的方式以及处理中断的两种方法:一种是使用CAN模块的硬件功能,另一种是通过轮询内部源。
通过CAN硬件功能对CAN中断驱动程序进行编程使用每个消息对象的RXIE和TXIE位。所有32个消息对象都是通过接口寄存器访问的。每个模块可使用两组寄存器,例如CANxIF1寄存器可以用于从消息对象读取,而CANxIF2寄存器可以用于写入消息对象。每当消息对象发送或接收消息时,都会根据其优先级(基于IntId的值)为相应的中断提供服务。这种方法需要最小的CPU开销,是大多数应用程序的首选方法。
每当成功传输或接收时,CAN轮询都会产生中断。
轮询的CPU开销很高,因为每次在CAN总线上确认消息时,CPU都会中断。因此,仅建议小型网络使用轮询对中断驱动程序进行编程。
为每种方法提供了示例程序作为示例。