F407芯片CAN总线收发耗时的测量

2019-07-20 18:01发布

STM32F407单片机通过CAN总线收发数据,一帧数据16字节,波特率1Mbps,8字节数据全部填充,标准ID。

我的理解是:1Mbps的速率,发送一位需要1us(理论上),16字节总共128bit,所有至少需要128us。而我测量的时间,发送一帧需要260us,时间相差一倍!

我测量的方式是:在数据写入寄存器TTR、TDLR、TDHR后申请发送请求的时候开始测量,在中断标志位检测到RQCP、TXOK被置位(即检测到发送成功标志)的时候结束测量。这一段时间我理解为CAN控制器完成了一帧数据的发送。

现在不确定是否我的理解有问题,还有相差一倍的时间有点离谱。求各种指点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
4wards
1楼-- · 2019-07-21 14:07
正点原子 发表于 2016-12-17 18:17
试下点对点(不要有其他节点),大量数据发送,然后求平均时间。

Thank you.

今天试一下,两天没上网了。
4wards
2楼-- · 2019-07-21 16:09
4wards 发表于 2016-12-19 09:45
Thank you.

今天试一下,两天没上网了。

估计知道原因了:我是单片机的定时器来测的,最高分辨率是1us!然而它发送一个bit可能仅需要1.001us,然而多出的0.001us也会被计算为1us!问题可能就出在这里。还是用示波器测吧!(主要是手上没有示波器,才想的这个土办法!)

一周热门 更多>