43-3-STM32的CAN外设

1.STM32 的芯片中具有 bxCAN 控制器 (Basic Extended CAN), 它支持 CAN 协议 2.0A
2.0B 标准。

2.外设中具有 3 个发送邮箱,发送报文的优先级可以使用软件控制,还可以记录发送的时间;具有 2 3 级深度的接收 FIFO,可使用过滤功能只接

收或不接收某些 ID 号的报文;可配置成自动重发;不支持使用 DMA 进行数据收发。
3.STM32 CAN 架构:

1. CAN 控制内核

2. CAN 发送邮箱

3. CAN 接收 FIFO

在标号处的是 CAN 外设的接收 FIFO,它一共有 2
接收
FIFO,每个 FIFO 中有 3 个邮箱,即最多可以缓存 6 个接收到的报文。当接收到报文
时,
FIFO 的报文计数器会自增,而 STM32 内部读取 FIFO 数据之后,报文计数器会自减,
我们通过状态寄存器可获知报文计数器的值,而通过前面主控制寄存器的
RFLM 位,可设置锁定模式,锁定模式下 FIFO 溢出时会丢弃新报文,非锁定模式下 FIFO 溢出时新报文会
覆盖旧报文。
 

4. 验收筛选器

在标号处的是 CAN 外设的验收筛选器,一共有 28
筛选器组,每个筛选器组有
2 个寄存器, CAN1 CAN2 共用的筛选器的。

5. 整体控制逻辑

4.CAN外设相关结构体:

(1).CAN_InitTypeDef

CAN 初始化结构体及初始化函数来控制 CAN 的工作方式

(2).CanTxMsg及CanRxMsg 

提供了收发报文使用的结构体及收发函数。 

(3).CAN_FilterInitTypeDef

配置控制筛选器模式及 ID 的结构体

posted @ 2018-07-27 16:10  西贡小傻  Views(599)  Comments(0Edit  收藏  举报