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

CAN, 图形化程序自动生成, AiCube,USB转2组CAN | Lin 图形化程序自动生成

[复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-03-07 07:59:12

15

主题

192

回帖

2286

积分

金牌会员

积分
2286
发表于 2026-2-3 08:27:00 | 显示全部楼层
你好,这个程序可以直接作为CAN通信模板来用吗?里面仲裁啥的都有吧,直接发送数据功解析数据就可以了吗
截图202602030827457268.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:634
  • 最近打卡:2026-03-06 13:57:21
已绑定手机

52

主题

2464

回帖

8728

积分

论坛元老

积分
8728
发表于 2026-2-3 09:02:23 | 显示全部楼层
lh*** 发表于 2026-2-3 08:27
你好,这个程序可以直接作为CAN通信模板来用吗?里面仲裁啥的都有吧,直接发送数据功解析数据就可以了吗 ...

可以用这个模板,也可以参考屠龙刀例程包、32G实验箱例程包里面的CAN总线例子。
仲裁由硬件模块自动处理。
https://www.stcai.com/hxgnsyb
https://www.stcai.com/syx
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-03-07 07:59:12

15

主题

192

回帖

2286

积分

金牌会员

积分
2286
发表于 2026-2-3 12:48:24 | 显示全部楼层
乘风*** 发表于 2026-2-3 09:02
可以用这个模板,也可以参考屠龙刀例程包、32G实验箱例程包里面的CAN总线例子。
仲裁由硬件模块自动处理 ...

你好,换CAN引脚要怎么操作,这个函数我找不到在哪里,假好换成P0.0和P0.1要怎么改?
截图202602031246372346.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:634
  • 最近打卡:2026-03-06 13:57:21
已绑定手机

52

主题

2464

回帖

8728

积分

论坛元老

积分
8728
发表于 2026-2-3 14:01:35 | 显示全部楼层
lh*** 发表于 2026-2-3 12:48
你好,换CAN引脚要怎么操作,这个函数我找不到在哪里,假好换成P0.0和P0.1要怎么改?
...

在引脚配置函数上面右键,前往定义位置,复制需要修改的通道定义名称到初始化函数里面替换就行

截图202602031359332581.jpg
截图202602031400052346.jpg


或者使用 AiCube 打开例程包里面 .aic 文件,在图形化配置界面里面修改CAN通道,然后重新生成程序文件:
截图202602031409409126.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-03-07 07:59:12

15

主题

192

回帖

2286

积分

金牌会员

积分
2286
发表于 2026-2-3 14:36:38 | 显示全部楼层
乘风*** 发表于 2026-2-3 14:01
在引脚配置函数上面右键,前往定义位置,复制需要修改的通道定义名称到初始化函数里面替换就行

如果我只要这两个ID的报文,是这样配置吗?32G12K128这个芯片每组CAN是支持两组侦ID过虑的吧
截图202602031436017478.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:634
  • 最近打卡:2026-03-06 13:57:21
已绑定手机

52

主题

2464

回帖

8728

积分

论坛元老

积分
8728
发表于 2026-2-3 14:58:10 | 显示全部楼层
lh*** 发表于 2026-2-3 14:36
如果我只要这两个ID的报文,是这样配置吗?32G12K128这个芯片每组CAN是支持两组侦ID过虑的吧
...

每组CAN的过滤器可设置位单过滤器模式或者双过滤器模式。
设置成双过滤器可以制定2组过滤规则,双过滤器模式过滤扩展帧只能过滤其中一部分ID。
用法可参考这个帖子:

STC32G12K/STC32G8K系列2组CAN同时使用当1组CAN使用,最多有4组过滤器
https://www.stcaimcu.com/thread-22172-1-1.html
(出处: 国芯人工智能技术交流网站)
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-03-07 07:59:12

15

主题

192

回帖

2286

积分

金牌会员

积分
2286
发表于 2026-2-3 15:55:42 | 显示全部楼层
乘风*** 发表于 2026-2-3 14:58
每组CAN的过滤器可设置位单过滤器模式或者双过滤器模式。
设置成双过滤器可以制定2组过滤规则,双过滤器 ...

那括展桢要怎么配置,是这样配吗?

// 配置第一组滤波器(ACR0~ACR3 + AMR0~AMR3)
CanWriteReg(ACR0, (u8)(0x18012120 >> 3));    // 拆分ID到ACR寄存器
CanWriteReg(ACR1, (u8)(0x18012120 << 5));
CanWriteReg(ACR2, (u8)(0x18012120 >> 11));
CanWriteReg(ACR3, (u8)(0x18012120 >> 19));
CanWriteReg(AMR0, 0xFF);  // AMR全1,严格匹配
CanWriteReg(AMR1, 0x1F);  // 仅保留低5位(对应ID位)
CanWriteReg(AMR2, 0xFF);
CanWriteReg(AMR3, 0x7F);  // 仅保留低7位(对应ID位)
CanWriteReg(CANCON, CANCON_SWITCH_FILTER);  // 具体指令需参考手册
CanWriteReg(ACR0, (u8)(0x0C000003 >> 3));
CanWriteReg(ACR1, (u8)(0x0C000003 << 5));
CanWriteReg(ACR2, (u8)(0x0C000003 >> 11));
CanWriteReg(ACR3, (u8)(0x0C000003 >> 19));
CanWriteReg(AMR0, 0xFF);
CanWriteReg(AMR1, 0x1F);
CanWriteReg(AMR2, 0xFF);
CanWriteReg(AMR3, 0x7F);
例程烧进去串口没有打印信息,是用的3。0和3。1口吗?我用的是USB_LINK1D的串口连到3。0和3。1口。





回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:634
  • 最近打卡:2026-03-06 13:57:21
已绑定手机

52

主题

2464

回帖

8728

积分

论坛元老

积分
8728
发表于 2026-2-4 09:15:39 | 显示全部楼层
lh*** 发表于 2026-2-3 15:55
那括展桢要怎么配置,是这样配吗?

// 配置第一组滤波器(ACR0~ACR3 + AMR0~AMR3)

上面帖子里面有滤波器使用的参考代码,以及功能说明:

CAN1、CAN2如果使用双过滤器设置,可以分别过滤/接收2组CANID数据。

如果个CAN同时使用则最多可以过滤/接收4组CANID数据。

MCU每秒钟从CAN1、CAN2发送一帧固定数据.

收到允许接收的CANID帧数据后,将CAN帧信息、数据通过串口1(P3.0,P3.1)打印出来。

默认波特率500KHz, 用户可自行修改.

下载时, 默认时钟 24MHz (用户可自行修改频率).

  1.         //标准帧,单滤波器
  2.         CanWriteReg(ACR0,(u8)(ACR_ID1>>3));
  3.         CanWriteReg(ACR1,(u8)(ACR_ID1<<5));
  4. //        CanWriteReg(ACR2,(u8)(ACR_ID2>>8));   //过滤数据字节1内容
  5. //        CanWriteReg(ACR3,(u8)(ACR_ID2));      //过滤数据字节2内容
  6.         CanWriteReg(AMR0,0x00);                //总线验收屏蔽寄存器
  7.         CanWriteReg(AMR1,0x1F);
  8.         CanWriteReg(AMR2,0xFF);     //数据内容不过滤
  9.         CanWriteReg(AMR3,0xFF);
复制代码
  1.         //扩展帧,单滤波器
  2.         CanWriteReg(ACR0,(u8)(ACR_ID5>>21));
  3.         CanWriteReg(ACR1,(u8)(ACR_ID5>>13));
  4.         CanWriteReg(ACR2,(u8)(ACR_ID5>>5));
  5.         CanWriteReg(ACR3,(u8)(ACR_ID5<<3));
  6.         CanWriteReg(AMR0,0x00);                //总线验收屏蔽寄存器
  7.         CanWriteReg(AMR1,0x00);
  8.         CanWriteReg(AMR2,0x00);
  9.         CanWriteReg(AMR3,0x07);
复制代码
  1.         //标准帧,双滤波器
  2.         CanWriteReg(ACR0,(u8)(ACR_ID1>>3));
  3.         CanWriteReg(ACR1,(u8)(ACR_ID1<<5));
  4.         CanWriteReg(ACR2,(u8)(ACR_ID2>>3));
  5.         CanWriteReg(ACR3,(u8)(ACR_ID2<<5));
  6.         CanWriteReg(AMR0,0x00);                //总线验收屏蔽寄存器
  7.         CanWriteReg(AMR1,0x1F);
  8.         CanWriteReg(AMR2,0x00);
  9.         CanWriteReg(AMR3,0x1F);
复制代码
  1.         //扩展帧,双滤波器
  2.         CanWriteReg(ACR0,(u8)(ACR_ID5>>21));
  3.         CanWriteReg(ACR1,(u8)(ACR_ID5>>13));
  4.         CanWriteReg(ACR2,(u8)(ACR_ID6>>21));
  5.         CanWriteReg(ACR3,(u8)(ACR_ID6>>13));
  6.         CanWriteReg(AMR0,0x00);                //总线验收屏蔽寄存器
  7.         CanWriteReg(AMR1,0x00);
  8.         CanWriteReg(AMR2,0x00);
  9.         CanWriteReg(AMR3,0x00);
复制代码

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-03-07 07:59:12

15

主题

192

回帖

2286

积分

金牌会员

积分
2286
发表于 2026-2-4 18:01:02 | 显示全部楼层
乘风*** 发表于 2026-2-4 09:15
上面帖子里面有滤波器使用的参考代码,以及功能说明:

CAN1、CAN2如果使用双过滤器设置,可以分别过滤/接 ...
是这样改吗?
截图202602041857323379.jpg
截图202602041857572509.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-03-07 07:59:12

15

主题

192

回帖

2286

积分

金牌会员

积分
2286
发表于 2026-2-12 21:35:16 | 显示全部楼层
乘风*** 发表于 2026-1-19 09:03
建议用AiCube生成程序框架,初始化所需外设模块。
然后在生成的项目里面进行功能开发,或者移植其他程序 ...

你好,为什么我这里打印信息没有,是3。0和3。1口接电脑USB吗?我是接的STC USB LINK1D的烧录口

截图202602122133009973.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-7 15:31 , Processed in 0.127747 second(s), 92 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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