STM32的CAN应用简介

这篇博客介绍了CAN的基本原理,包括数据帧构成、总线仲裁机制、位时序和标识符。还详细讲解了STM32的CAN应用,包括配置筛选器、启动CAN、接收和发送数据的步骤。
摘要由CSDN通过智能技术生成

一、CAN基本原理

CAN的传输距离受CAN传输速度、节点数量等因素限制,在<5Kbps时最远可传输10Km;最大传输速度1Mbps时可传输40m。STM32芯片的CAN常用特性:

  • 3个发送邮箱

  • 三级深度的2个接收FIFO

  • 最多28个过滤器

STM32F429的CAN控制器框图如下所示:

通过配置各个筛选器去筛选CAN总线上感兴趣的数据,总线数据符合筛选器设置的要求后将数据移送到FIFO中;具体是移送到FIFO 0还是FIFO 1,也在配置筛选器时候设置。

在FIFO 0中有数据时,如果配置了中断,开发者可以通过实现以下函数来解析接收的数据:

void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan);

在FIFO 1中有数据时,如果配置了中断,开发者可以通过实现以下函数来解析接收的数据:

void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan);

CAN驱动软件开发中掌握以下四点即可适用大部分应用:数据帧的构成、总线仲裁机制、位时序、标识符。

1.1 数据帧的构成

CAN通信帧类型有五种:数据帧、遥控帧、错误帧、过载帧、间隔帧。其中数据帧最常用,数据帧格式如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值