配置CAN以FIFO模式发送,单片机周期发送不同ID的CAN报文,同时使用软件ZCANPRO周期发送不同ID的报文到CAN总线上来模拟总线上的负载。尝试了延时或等待有空闲邮箱时再将报文添加进去。最终发现都有丢帧的情况。 调试如下:固定发送报文数量,并仿真,对将要发送的数据添加到邮箱的成功状态进行计数。 第一种情况:等待所有发送邮箱都为空,再添加报文,出现丢帧。发20000帧,成功添加进邮箱的有20000帧,收到的有19971帧。 第二种情况:延时一段时间,再添加报文,出现丢帧。发20000帧,成功添加进邮箱的有18682帧,收到的有18605帧。 可以看到,通过等待FIFIO空闲时放入数据可以减少丢帧,但即使能将数据都成功添加到FIFO中,在发送时依然会丢帧。这是硬件的问题吗?还是是软件配置上的问题? |
stm32g474 板卡偶发flash的某块代码区被擦除
L99H92 的驱动问题?
STM32的H5/U5系列处理器内置运放支持负压运算吗?比如输入-1V,放大倍数为2时输出-2V
STM32G474 ADC多通道采集结果为同一通道结果?
stm32g474的开发板很烫
stm32g474 hrtim 中怎么使用 dual channel DAC trigger
STM32G431 从bootloader跳转到APPlication无法运行
《MCSDK5.X中增加位置环》提及mc_position.c/mc_position.h
STM32G473 DRDY不置位?
stspin32G4这颗mcu里面集成的是哪一款G4?能不能用cubemx来进行配置
最终发生丢帧会不会跟你添加的干扰有关? 你可以尝试将测试干扰信号逐渐减弱比较下。
尽管CAN支持失败重发,我相信CAN总线的负载能力也是有限的。
谢谢提醒,我意识到了是CAN重发机制导致的,先前调试功能时将自动重发功能失能了,将其使能问题就解决了。
[md]呵呵 原来还没开出错重发功能哦。