1 CAN模块的功能概述
CAN模块也就是我们所谓的CAN 驱动程序。如下图所示,CAN 驱动程序【即图中的Candrv】为位于驱动层的上面的模块【如CanIf模块,及Can接口层】提供了统一的接口。
它的具体功能如下【下文中的服务可以理解成API】:
- Can 模块是最低层的一部分,执行硬件访问并向上层提供与硬件无关的 API。唯一可以访问 Can 模块的上层是 CanIf 模块。
- Can 模块提供用于启动传输/发送的服务并调用 CanIf 模块的回调函数通知报文的接收事件。
- 它还提供服务来控制属于同一 CAN 硬件单元的 CAN 控制器的行为和状态。
- 多个 CAN 控制器可以由单个 Can 模块控制,只要它们属于同一个 CAN 硬件单元。
2 CAN模块提供的API
/**
* @brief This function performs software triggered state transitions of the CAN controller Sta