找回密码
 立即注册
楼主: 乘风飞扬

CAN总线标准帧扩展帧收发例子-C语言与汇编

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-3-18 16:40:48 | 显示全部楼层
超*** 发表于 2024-3-18 16:12
可以用can助手查看吗

STC-ISP软件里面的"CAN助手"需要配套的程序才能进行使用。
将STC32芯片通过收发器连接到CAN总线,就可以跟总线上其它节点进行数据收发测试。
具体应用方法参考以下帖子:
CAN视频教学, USB 转 2组CAN, STC-ISP V6.93B 【CAN助手】收发测试
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2402
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-19 08:35:19

0

主题

22

回帖

126

积分

注册会员

积分
126
发表于 2024-6-28 18:53:48 | 显示全部楼层
屠龙刀板就可以实现CAN吧

点评

可以,自己要焊上 CAN 的收发器  详情 回复 发表于 2024-6-28 20:12
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-6-28 20:12:57 | 显示全部楼层
阿白*** 发表于 2024-6-28 18:53
屠龙刀板就可以实现CAN吧

可以,自己要焊上 CAN 的收发器
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-04-10 12:41:51

0

主题

14

回帖

69

积分

注册会员

积分
69
发表于 2024-8-28 14:17:46 | 显示全部楼层
请问 STC32G 的 CAN 通讯模块,在通讯的过程中,如何判断帧数据被正确发送,也就是说网络上至少有一个设备接收了该帧数据,以此来判断接收方设备是否在线
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-8-28 18:18:36 | 显示全部楼层
ahwh*** 发表于 2024-8-28 14:17
请问 STC32G 的 CAN 通讯模块,在通讯的过程中,如何判断帧数据被正确发送,也就是说网络上至少有一个设备 ...

CAN总线通信需要总线上至少有2个节点,才能正常收发。
一个节点发送时,至少有另一个节点进行应答,数据才能正常发出,

否则会产生总线错误,增加错误计数。
错误计数超过255就会进入BUS-OFF,无法再进行收发。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:391
  • 最近打卡:2025-05-02 07:26:37

3

主题

85

回帖

850

积分

高级会员

积分
850
发表于 2024-8-29 06:56:52 | 显示全部楼层
深度学习一下{:5_332:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:321
  • 最近打卡:2025-05-01 21:04:13
已绑定手机

21

主题

487

回帖

1027

积分

金牌会员

积分
1027
发表于 2024-8-29 08:18:57 | 显示全部楼层
乘风*** 发表于 2024-1-8 16:23
做CAN总线通信的话,R79,R80需要断开。

我当时就掉这个坑里了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-04-10 12:41:51

0

主题

14

回帖

69

积分

注册会员

积分
69
发表于 2024-8-29 13:25:17 | 显示全部楼层
乘风*** 发表于 2024-8-28 18:18
CAN总线通信需要总线上至少有2个节点,才能正常收发。
一个节点发送时,至少有另一个节点进行应答,数据才 ...

谢谢指教,我是做检测的,有个问题想请教一下:如果接收方不在线或不工作了,导致报文无法被正确接收,这种情形下,如何判断报文没有被接收,另外,CAN模块是否不断重发,如果是,CAN发送通道就阻塞了,如何将CAN模块复位,以便进行后续的工作,谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-8-29 17:24:42 | 显示全部楼层
ahwh*** 发表于 2024-8-29 13:25
谢谢指教,我是做检测的,有个问题想请教一下:如果接收方不在线或不工作了,导致报文无法被正确接收,这 ...

如果发生报文时没有节点进行应答接收,就会产生总线错误,错误计数增加(+8)。
CAN控制器在发送产生错误的情况下会自动进行重发,如果还是没有应答,继续产生总线错误,错误计数继续增加。
错误计数超过255就会进入BUS-OFF模式,不再进行收发。
可以通过清除RESET MODE状态位恢复正常工作模式。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-04-10 12:41:51

0

主题

14

回帖

69

积分

注册会员

积分
69
发表于 2024-8-30 13:04:37 | 显示全部楼层
STC32G 的 CAN 发送命令寄存器 TR 置位后,
到 RS 寄存器的 TS 正在发送状态位被置位之间有一段时间延时,
实测大约100个NOP左右,这给发送完成判断带来了一点麻烦,
中间要加一个延时才能可靠判断 TS 的状态位,
不知道实际情况是不是这样
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:09 , Processed in 0.150641 second(s), 121 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表