首先,来看CAN的主控制寄存器(CAN_MCR),该寄存器各位描述如图30.1.15: 图30.1.15 寄存器CAN_MCR各位描述 该寄存器的详细描述,请参考《STM32参考手册》22.9.2节(439页),这里我们仅介绍下INRQ位,该位用来控制初始化请求。 软件对该位清0,可使CAN从初始化模式进入正常工作模式:当CAN在接收引脚检测到连续的11个隐性...
框图中标号处的 CAN 控制内核包含了各种控制寄存器及状态寄存器,我们主要讲解其中的主控制寄存器 CAN_MCR 及位时序寄存器 CAN_BTR。 2.1.1 主控制寄存器 CAN_MCR 主控制寄存器 CAN_MCR 负责管理 CAN 的工作模式,它使用以下寄存器位实现控制。 (1) DBF 调试冻结功能 DBF(Debug freeze) 调试冻结,使用它可设置 CAN...
CAN_BTR(位时序寄存器)及波特率 配置测试模式、波特率以及各种位内的段参数 CAN_BTR模式 静默和环回模式用于调试和测试CAN通信(通过CAN_MCR注册中的位30和位31(看上图)进行启动) SILM 静默模式(调试) CAN 可以接收数据,但是不会主动发送数据,进行干扰(检测到错误,也不会发送错误帧) 主要用于睡眠监听,不影响睡眠...
CAN发送邮箱低字节数据寄存器 (CAN_TDLxR) (x=0~2),该寄存器各位描述 该寄存器用来存储将要发送的数据,这里只能存储低4个字节,另外还有一个寄存器CAN_TDHxR,该寄存器用来存储高4个字节,这样总共就可以存储8个字节。 CAN接收FIFO邮箱数据长度和时间戳寄存器 (CAN_RDTxR) 、CAN接收FIFO邮箱低字节数据寄存器 (CAN_...
一.工作模式 通过CAN_MCR寄存器控制INRQ和SLEEP1.初始化INRQ=1 SLEEP=0软件初始化应该在硬件2.正常INRQ=0 SLEEP=0在初始化完成后,软件应该让硬件进入正常模式,以便正常接收和发送报文3.睡眠SLEEP=1 bxCAN可工作在低功耗的睡眠模式 二.测试模式 通过CAN_BTR寄存器控制LBKM和SILM1. 静默 可以接受不能发送 ...
一.工作模式 通过CAN_MCR寄存器控制INRQ和SLEEP 1.初始化INRQ=1 SLEEP=0 软件初始化应该在硬件 2.正常INRQ=0 SLEEP=0 在初始化完成后,软件应该让硬件进入正常模式,以便正常接收和发送报文 3.睡眠SLEEP=1 bxCAN可工作在低功耗的睡眠模式 二.测试模式 通过CAN_BTR寄存器控制LBKM和SILM ...
寄存器CAN_MSR介绍 可以看出,软件将CAN主控制寄存器的SLEEP置1,即可请求进入睡眠模式。清零该位,退出睡眠模式。另外,如果CAN_MCR寄存器的AWUM位为’1’,一旦检测到CAN总线的活动,硬件就自动对SLEEP位清’0’来唤醒bxCAN。 2.2.4 静默模式 将CAN_BTR寄存器的SILM位置’1’,来选择静默模式。
Model3芯片(简称M3芯片)CAN的架构还有寄存器说明 CAN控制器原理框图 位时序逻辑BTL:负责同步位时序,确保数据传输的稳定性,以预先配置的波特率发送和接受报文。 位流处理器BSP:负责对发送数据进行位填充、附加CRC等处理,并为位时序逻辑模块生成位流;负责对接收的位流进行去填充、验证CRC等处理;负责检测总线上的错误并...
CAN_MCR( 主控制寄存器 ) 主要控制CAN 的工作模式 寄存器控制图 DBF 调试冻结功能 用于设置CAN 控制器在进入调试模式时的通信功能,工作状态和禁止收发状态 ==设定禁止收发状态后在进入调试状态后将关闭通信功能==(不阻碍FIFI访问,同时可以读取已经接受的消息) ...