OpenEdv-开源电子网

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

使用DMA單通道ADC連續採樣,只得一次DMA回應

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-12-8
在线时间
6 小时
发表于 2018-12-29 00:06:37 | 显示全部楼层 |阅读模式
1金钱
各位版上前輩大神好!
我的問題如標題所述,困擾了我許久
實在是想不出思路上哪邊出了問題,因此來論壇請教。
拜託各位幫幫忙了, 謝謝!!

使用MCU : 阿波羅F767
問題描述 :
ADC1 搭配 DMA2 stream4 通道0做連續採樣時,輸出值皆固定為第一次ADC採樣值,經過stlink除錯後發現ADC轉換正常(按下RUN再按STOP DR暫存器的值會改變),
奇怪的是ADC轉換完後DMA設定的儲存器值不會跟著更新,造成輸出值都是第一次採樣的結果。
(我的想法是當ADC轉換完後會自動產生DMA請求去更新儲存器(變數)的值,不知道是不是這部分有想法有誤?)

除錯紀錄:
*按RUN然後STOP後 第一次儲存器值(變數)會更新,有產生TCIF4、HIF4
*有懷疑是不是要開啟ADC CR2的DDS,但一開啟執行後會跳起OVR使得ADC不再轉換
*按RUN然後STOP後 SR暫存器的STRT、EOC標誌為1
***不明白為什麼不加這行while(!(ADC1->SR&1<<1)); 即使產生TCIF4、HIF4儲存器的值還是為0,再想有可能是等轉換完成後產生DMA請求,
所以沒這行會使僅有的一次儲存器值更新為0。(不確定)

ADC初始化
adc_init.PNG

DMA 初始化
dma_init.PNG

DMA啟動
dma_enable.PNG

Main
main.PNG

原始專案附件
train.rar (1.68 MB, 下载次数: 9)

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-12-31 01:07:17 | 显示全部楼层
可以参考下论坛其他网友的代码
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 08:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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