打印
[STM32F1]

F103的CAN通讯时不时掉一帧,咋查?

[复制链接]
562|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
童雨竹|  楼主 | 2025-5-18 08:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发了几十帧总有一帧发不出去,开了中断调试半天,也没找到是哪段卡住了。

使用特权

评论回复
沙发
Clyde011| | 2025-5-18 08:08 | 只看该作者
建议打开CAN状态寄存器看看。

使用特权

评论回复
板凳
公羊子丹| | 2025-5-18 08:09 | 只看该作者
是不是FIFO溢出了?

使用特权

评论回复
地板
周半梅| | 2025-5-18 08:09 | 只看该作者
接收那边有没有ACK回给你?

使用特权

评论回复
5
帛灿灿| | 2025-5-18 08:10 | 只看该作者
波特率匹配确认过了吗?

使用特权

评论回复
6
童雨竹|  楼主 | 2025-5-18 08:11 | 只看该作者
CAN滤波器有没有误设置?

使用特权

评论回复
7
万图| | 2025-5-18 08:11 | 只看该作者
有时候是驱动芯片接地没对好。

使用特权

评论回复
8
Wordsworth| | 2025-5-18 08:12 | 只看该作者
看看是不是中断处理太慢了。

使用特权

评论回复
9
Bblythe| | 2025-5-18 08:13 | 只看该作者
加了延时反而稳定了,我也奇怪。

使用特权

评论回复
10
Pulitzer| | 2025-5-18 08:14 | 只看该作者
我的问题是CAN_TX引脚没接对。

使用特权

评论回复
11
Uriah| | 2025-5-18 08:15 | 只看该作者
用逻辑分析仪抓下帧比较准。

使用特权

评论回复
12
hehhehee| | 2025-5-31 17:49 | 只看该作者
利用示波器或CAN分析仪抓包分析帧丢失的时机和总线状况。

使用特权

评论回复
13
三生万物| | 2025-6-9 18:30 | 只看该作者
CAN总线两端必须接120Ω终端电阻,若电阻值不正确,信号可能会发生反射,导致数据失真或丢失。在设计和部署CAN总线时,要注意电阻的质量与连接的可靠性,避免因电阻设置不当导致通信不稳定

使用特权

评论回复
14
冰春彩落下| | 2025-6-9 19:00 | 只看该作者
隐性电平(空闲状态)时,CANH≈2.5V,CANL≈2.5V;显性电平(传输状态)时,CANH≈3.5V,CANL≈1.5V。若电平异常,需检查CAN收发器(如TJA1050)是否损坏,或供电是否稳定

使用特权

评论回复
15
别乱了阵脚| | 2025-6-9 21:00 | 只看该作者
确认所有节点的波特率一致(包括同步段、位时间段等参数)。使用STM32CubeMX或示波器校准波特率,确保实际速率与配置一致

使用特权

评论回复
16
远山寻你| | 2025-6-9 22:32 | 只看该作者
检查CAN过滤器设置,确保接收节点能正确识别发送节点的ID。

使用特权

评论回复
17
夜阑风雨| | 2025-6-9 23:00 | 只看该作者
在CANH/CANL上加磁环或共模电感,抑制高频噪声。增加TVS二极管(如SMAJ33CA)保护总线免受浪涌冲击

使用特权

评论回复
18
淡漠安然| | 2025-6-10 01:00 | 只看该作者
使用双绞屏蔽线(CANH/CANL),避免与电源线平行走线,减少干扰。保证良好的接地设计,避免由于接地不良或电气干扰导致信号失真

使用特权

评论回复
19
江河千里| | 2025-6-10 08:00 | 只看该作者
若使用中断或DMA,需正确配置优先级和缓冲区,避免数据溢出或丢失。合理配置缓冲区大小,避免因缓冲区溢出导致数据丢失

使用特权

评论回复
20
光辉梦境| | 2025-6-10 10:00 | 只看该作者
加强错误处理机制,确保当出现通信错误或总线故障时,能够及时捕捉并采取相应的恢复措施。例如启用错误中断(如CAN_IT_ERROR),并在中断中处理总线关闭(Bus-Off)状态,自动恢复通信

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

113

主题

5258

帖子

2

粉丝