STM32F101xx/F103xx CAN库函数详解与固件初始化

需积分: 35 16 下载量 154 浏览量 更新于2024-08-10 收藏 5.11MB PDF 举报
本文档详细介绍了Intelliution i Historian 2.0中的CAN库函数,这些函数针对STM32固件库,特别是STM32F101xx与STM32F103xx系列32位ARM微控制器。CAN库是固件的重要组成部分,用于管理和控制CAN(Controller Area Network)总线通信,这是一种工业标准的现场总线,用于汽车、嵌入式系统等场景中的数据交换。 主要的库函数包括: 1. **CAN_DeInit**: 这个函数的作用是将外设CAN的所有寄存器重置为默认配置,便于后续重新初始化。函数原型为void CAN_DeInit(void),它没有输入参数,也没有返回值,适用于清除之前配置。 2. **CAN_Init**: 该函数用于根据CAN_InitStruct中的参数初始化CAN外设寄存器,为后续通信设置基础配置。 3. **CAN_FilterInit**: 初始化CAN滤波器,以定制接收和发送消息的规则。 4. **CAN_StructInit**: 将CAN_InitStruct中的参数填充为缺省值,简化配置过程。 5. **CAN_ITConfig**: 用于启用或禁用特定的CAN中断,以处理接收或发送消息的事件。 6. **CAN_Transmit** 和 **CAN_TransmitStatus**: 分别用于开始消息传输和检查传输状态,这对于实现数据的发送至关重要。 7. **CAN_CancelTransmit**: 取消正在进行的传输,确保控制权的灵活管理。 8. **CAN_FIFORelease**: 释放FIFO(First-In-First-Out)队列,可能涉及数据缓存操作。 9. **CAN_MessagePending**: 查询挂起的消息数量,用于了解通信状态。 10. **CAN_Receive**: 接收CAN总线上的消息,完成数据接收任务。 11. **CAN_Sleep** 和 **CAN_WakeUp**: 分别使CAN进入低功耗模式和唤醒,以节省能源。 12. **CAN_GetFlagStatus** 和 **CAN_ClearFlag**: 检查和清除标志位,用于监控和管理总线状态。 13. **CAN_GetITStatus** 和 **CAN_ClearITPendingBit**: 分别检查中断状态并清除待处理标志。 每个函数都有明确的功能描述、输入输出参数以及使用示例,如注释中提到的`/* Deinitialize the CAN */ CAN_DeInit();`代码片段。文档还强调了库遵循"StrictANSI-C"标准,具有良好的文档化和兼容性,有助于简化开发者的工作流程,减少编程时间和成本。 通过使用这个库,用户能够快速集成CAN通信到他们的应用程序中,但需注意,由于库功能全面,对于追求极致代码大小和执行速度的应用,可能需要针对具体需求进行微调或去除部分功能。