CH32-CAN时间触发模式简析
一:功能简介
1.当使能CH32-CAN的时间触发功能后,CAN内部的一个16位计数器就开始从0计数,溢出后重新从0开始计数,计数频率是CAN模块的波特率。
使用时间触发模式必须要保证发送帧的长度为8字节,而且要关闭自动重传功能,使能该模式后,每当发送一个CAN数据帧时,时间戳数据会自动覆盖在发送帧的第7和第8字节上(就算写入也会被时间戳覆盖掉)。
在使用时间触发模式功能时,需要配置CANx_CTLR 的TTCM = 1(允许时间触发模式)与NART = 1(禁止自动重传)
2. TXMDTR寄存器。此寄存器的高16位就是那个一直在工作的计数器,发送一个CAN帧时,时间戳信息通过访问这个计数器来实现的(工作状态下为只读),TGT = 1,发送CAN数据时将TIME[15:0]的值覆盖在第7、第8字节。此时DLC必须位8。
3. CAN 接收邮箱数据长度和时间戳寄存器,TIME[15:0]记录时间戳计数器值,接收一个CAN数据帧时,通过访问这个计数器来获取时间戳。
二:关键代码
1.初始化配置
2.发送报文配置
3.接收处理