can1init 发表于 2020-4-20 22:28:43

如何利用stm32的bxCAN记录接收每条报文的具体时间

      CAN 接收 FIFO 邮箱数据长度控制和时间戳寄存器 (CAN_RDTxR)的高16位是记录接收每条CAN报文的具体时间,但是16位记录的时间非常短暂。而且我找不到有关的库函数读取这16位的时间,是我太笨了没找到还是直接对寄存器操作读取这16位的值?



      如果说利用TIM定时器对这个16位内部计时器再次进行计数延长计时时间是否可行?这个内部计数器是否有输出中断(我没找到,官方手册对这个计时器描述好少啊)可以和TIM定时器连接上以延长计时时间?

      我的主要目的是想记录接收每条报文的具体时间,如果有其他方法也可以,如果实在没有办法,是不是只能单纯利用TIM定时器记录时间了,但毕竟可能TIM定时器不如bxCAN硬件自带的定时器好些。
       谢谢各位大佬了!!!

butterflyspring 发表于 2020-5-9 14:45:54

这个就是CAN外设里一个自由运行的计数器,只是在发送或接收的时候捕获下来,应该是作为相对时间来看。估计在网络中多个节点通讯时可以记录相对时间。利用这个时间戳可以很精细的记录。 如果通许不那么快是可以软件读取定时器(甚至RTC计数器)值。当然这个时间相对于时间戳是滞后一些,没有实时那么精准,但也可以反映相对时间。
页: [1]
查看完整版本: 如何利用stm32的bxCAN记录接收每条报文的具体时间