stm32f407CAN总线-2020-10-19
1、stm32f407的CAN2(从)是无法直接访问存储器访问控制器的,需要首先开启CAN1(主)的时钟,因为存储器访问控制器是由CAN1负责控制的。
2、CAN内核主控制寄存器(MCR)负责管理CAN的工作模式。
3、CAN内核位时序寄存器(BTR)用来配置测试模式、波特率以及位内段参数。
4、一般初始化结束以后需要请求系统进入正常工作模式以达到正常收发数据的目的,这时,需要将主控制寄存器的INRQ(initialization request)位清零,以使硬件切换到正常模式下。
5、设置静默模式需要配置位时序寄存器的SILM位为1,在静默模式下时,CAN可以接受有效数据帧和有效遥控帧,但无法启动接收,静默模式可以用于分析CAN总线上的流量,但由于没有发送,因此不会出现发送显性电平造成对总线上数据的干扰(这也说明发送端平常保持隐性电平)。
6、回环模式的配置在位时序寄存器的LBKM(loop back mode),为1时使能,该模式下发送出去的数据可以同时返回给接收以达到回环,用于自检测试。
7、静默回环模式下CAN总线的接收和发送相当于都被断开。
8、位时序由同步段+位段1+位段2构成,同步段长度为一个时间片长度,计算过程使用到42MHz的APB1总线时钟。
9、CAN1和CAN2共用验收筛选器。