电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
主循环里不断开启关闭ADC的DMA传输功能,上电有几率死机。
已解决
73482
个问题
已帮助
5993
位优秀工程师
主循环里不断开启关闭ADC的DMA传输功能,上电有几率死机。
FEItwo
2019-01-30
浏览量:811
程序写好后发现有一定几率上电后看门狗复位,然后屏蔽看门狗,用定时器控制灯闪烁作为指示,主循环里串口每隔一秒输出一句话;
发现有一定几率主循环里不走,但定时器控制的灯正常闪烁。程序不知道停在哪里了。
然后把主循环里的语句逐句屏蔽掉,最后发现可能是ADC这部分的问题。
ADC这里是这样实现的,只用了STM32的1个ADC引脚,用多路模拟开关来切换外部多个输入信号。
之前ADC的DMA传输就没搞明白,在主循环外开启DMA后,发现读写spi flash异常慢,后来关掉ADC的DMA后正常了。
于是不敢一直开启DMA,而是在主循环里进行ADC读取前开启DMA,读取后再关闭DMA。
请教下大家,问题可能出在哪里?
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
阳光漫步者
一般都是用的DMA方式控制ADC的,这样可以直接对你的ADC采样多个通道实现,你说的这种情况要检查DMA的地址
发布于
2019-01-31
举报
评论 0
0
0
其他答案
数量:
6
drepa
ADC一般是很少情况需要用到DMA的,如果项目里面没有明确说明一定要ADC+DMA的话就不要启用DMA。
发布于
2019-01-30
举报
评论 0
0
0
XiaoJH
应该和开启DMA没有关系,DMA好处就是不需要MCU来干预。问题可能出在你读取ADC的这部分代码,是不是有硬延时或while拖住了程序。
发布于
2019-01-30
举报
评论 0
0
0
yhj416606438
上电最好延时一会在操作比较安全
发布于
2019-02-02
举报
评论 0
0
0
chen0000009
看一下你在哪里喂狗的,喂狗是否需要什么条件
发布于
2019-02-19
举报
评论 0
0
0
快没时间了
DMA应该不会影响SPI的通信,是否是开了中断的事,减少中断的处理试试
发布于
2019-02-25
举报
评论 0
0
0
rdim
可能是ADC还有没初始化完成就使用了DMA导到的
发布于
2019-02-25
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
主循环里不断开启关闭ADC的DMA传输功能,上电有几率死机。
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: