
背景: 在CAN总线上,挂了50台设备,会概率性丢包; 波特率:250K ID:所有设备共用一个ID CAN代码配置
通信过程: PC会发送一条数据到设备,设备会匹配自己的HN号,才会进行回应; 问题: 压测了一晚上,会概率性丢包,不是第一个8字节,就是8字节丢掉。总的数据包大概40个字节左右 已经做了处理: 1、加了终端电阻120欧姆 2、每次发送数据会间隔300ms 3、问题是通过CAN总线抓包的发现的。 请教各位大佬,帮忙看一下有什么问题?或者有什么建议 |
STM32L431RCT6中文数据手册
STM32L431内部温度AD值不随温度变化
STM32L设置CAN一直卡在HAL_CAN_START(),上拉两个引脚依然卡在这里
使用CubeMX能配置STM32L4XX芯片的低功耗模式吗?
motor profiler 链接nucleo 476rg时提示如图所示的通信错误,此时未连接IHM08M1,电脑上有476RG产生的串口,STLINK,U盘标识
STM32L476 使用Quad spi 4线制访问MX25L25645 失败
小白求助!STM32L476使用VREF、VBAT采集模块电压,计算出的VBAT值偏大
各位大佬们多提提宝贵建议定位根本原因,跪谢。STM32L452 在未知情况下打开了读保护RDP?MCU无法运行,只有解除读保护后重新烧录固件
嘉立创和淘宝买的STM32L496芯片丝印不一样,能告诉我这两个丝印有什么区别吗?
STM32L433VCT6 进入STOP模式2之后,功耗依然和正常运行模式没有差别,请教大神
最好也量测一下设备端的信号,看看是不是有很大的影响。反过来,如果拿掉一些节点,是不是有所改善。
你所有的CAN节点使用同一ID号,如果他们同时发送信息就难以识别了,而且容易导致总线冲突与混乱;所以,设备回应时应避免多个设备同时发送用同一个ID。
终端电阻只需在主干的两端加120Ω电阻即可;主干总线尽量短点,在满足需求的情况下,尽量将波特率放低点;
另外,建议开启硬件自动重发,即hcan1.Init.AutoRetransmission = Enable;
设备使用的是内部高速晶振,内部高速晶振比外部高速晶振的精度会差一点。
信号质量只能好良好,会有些过冲。
之前尝试拿掉一些节点后,相对会好一点。
现在做了一个尝试,就是在发送完完整的一帧数据后延时10ms,暂时就没有发现丢包
[md]多谢大佬
CAN节点的设备是从设备,不会主动发数据,只有上位机请求的时候才会发送数据,和自己的信息想匹配才会回应上位机。
终端电阻加了120欧姆;波特率是250K;
当时有一台设备开启了自动重发机制,会一直发送数据。