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.接收处理

 

posted @ 2024-03-02 16:34  WCH_CH32  阅读(88)  评论(0编辑  收藏  举报