OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 245|回复: 7

STM32F407ZGT6的定时器驱动ADC+DMA传输影响CAN1中断接收问题

[复制链接]

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2022-8-4
在线时间
12 小时
发表于 2025-12-18 09:57:04 | 显示全部楼层 |阅读模式
12金钱
本帖最后由 12138T 于 2025-12-18 10:08 编辑

通过TIM2触发ADC进行采集,DMA搬运至内存区,CAN1配置为中断接收模式,通过电脑端CAN助手发送扩展帧包
两个功能都可单独运行回复区图片所示。
但两个功能同时启用就会出现CAN1接收错误的问题,报接收溢出,debug发现进入中断回调后并未正常调用HAL_CAN_GetRxMessage函数。
部分源码配置见附件

HARDWARE.zip

9.44 KB, 下载次数: 1

最佳答案

查看完整内容[请看2#楼]

新建工程导入原工程代码,功能正常(禁止原程序中的DMA中断使能),至于原工程为啥出现这种情况暂未发现原因
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2022-8-4
在线时间
12 小时
 楼主| 发表于 2025-12-18 09:57:05 | 显示全部楼层
新建工程导入原工程代码,功能正常(禁止原程序中的DMA中断使能),至于原工程为啥出现这种情况暂未发现原因
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2022-8-4
在线时间
12 小时
 楼主| 发表于 2025-12-18 10:02:31 | 显示全部楼层
屏蔽DMA中断传输(HAL_ADC_Start_DMA函数),CAN1就可都正常接收数据,不知道为什么DMA传输完成中断会影响CAN1中断,大佬们有解决方案/思路吗
捕获1.PNG
捕获2.PNG
捕获.PNG
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165786
金钱
165786
注册时间
2010-12-1
在线时间
2124 小时
发表于 2025-12-19 20:57:46 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子产品购买店铺https://zhengdianyuanzi.tmall.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2022-8-4
在线时间
12 小时
 楼主| 发表于 2025-12-23 14:36:00 | 显示全部楼层

CAN的优先级设置得比DMA的高,这几天试了一下用CubeMX直接配置,禁止DMA中断模式发现CAN接收和ADC+DMA传输功能都正常了,不知道为啥
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2022-8-4
在线时间
12 小时
 楼主| 发表于 2025-12-23 14:46:51 | 显示全部楼层
12138T 发表于 2025-12-23 14:36
CAN的优先级设置得比DMA的高,这几天试了一下用CubeMX直接配置,禁止DMA中断模式发现CAN接收和ADC+DMA传 ...

按照CubeMX生成的代码修改自己的代码,测试结果只要触发CAN接收中断,就硬件错误了
回复

使用道具 举报

70

主题

6774

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13352
金钱
13352
注册时间
2012-11-26
在线时间
3838 小时
发表于 2025-12-24 09:11:29 | 显示全部楼层
12138T 发表于 2025-12-23 14:46
按照CubeMX生成的代码修改自己的代码,测试结果只要触发CAN接收中断,就硬件错误了

是不是开了哪个中断,但是没写中断函数
学无止境
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2022-8-4
在线时间
12 小时
 楼主| 发表于 2025-12-26 15:48:20 | 显示全部楼层
jermy_z 发表于 2025-12-24 09:11
是不是开了哪个中断,但是没写中断函数

仔细排查过了,开启的中断都有中断处理函数,重新新建工程导入相同的代码和库文件,结果功能都正常了,估计是原工程出啥问题了
回复

使用道具 举报

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

本版积分规则


关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-1-9 18:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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