欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: STM32單片機(jī)ADC是在滿足那個(gè)條件下觸發(fā)DMA搬運(yùn)? [打印本頁(yè)]

作者: 風(fēng)吹過(guò)又見你    時(shí)間: 2022-4-25 14:42
標(biāo)題: STM32單片機(jī)ADC是在滿足那個(gè)條件下觸發(fā)DMA搬運(yùn)?
各位大佬請(qǐng)指教一下:STM32F103C8T6
我使用DMA來(lái)搬運(yùn)ADC讀取到的數(shù)據(jù),想使用硬件觸發(fā)DMA搬運(yùn)。那ADC是在滿足那個(gè)條件下觸發(fā)DMA搬運(yùn)的呢?在DMA搬運(yùn)前ADC讀取到的數(shù)據(jù)又存放在哪里呢?能存多少數(shù)據(jù)呢?在DMA初始化時(shí)有一個(gè)搬運(yùn)數(shù)據(jù)的量設(shè)置,例如100個(gè)數(shù)據(jù),是不是說(shuō)當(dāng)ADC采集完100個(gè)數(shù)據(jù)后,就會(huì)觸發(fā)ADC進(jìn)行搬運(yùn)呢?

謝謝!

作者: Y_G_G    時(shí)間: 2022-4-25 15:37
ADC工作在DMA的模式下又不占用運(yùn)行,干嘛要硬件觸發(fā)呢?
如果不是要降低功耗,ADC可以一直進(jìn)行,MDA工作在循環(huán)模式下,就一直在保存著一定長(zhǎng)度的數(shù)據(jù),你用的時(shí)候,只要讀取就可以了
在DMA模式下,每次ADC轉(zhuǎn)換完成,DMA就搬運(yùn)一次數(shù)據(jù),并不是要等到100次ADC之后才搬運(yùn)的
如果是你設(shè)定了100個(gè)數(shù)據(jù),而且,ADC已經(jīng)進(jìn)行超過(guò)了100次,那么,這100個(gè)數(shù)據(jù)就一直是最近100次ADC的數(shù)據(jù)
作者: 風(fēng)吹過(guò)又見你    時(shí)間: 2022-4-25 15:42
感謝解答!
作者: 風(fēng)吹過(guò)又見你    時(shí)間: 2022-4-25 15:45
是不是說(shuō)DMA在循環(huán)模式下,ADC轉(zhuǎn)換成功一次就會(huì)觸發(fā)DMA搬運(yùn)一次數(shù)據(jù)。在DMA搬運(yùn)數(shù)據(jù)中,有一個(gè)數(shù)據(jù)大小,這個(gè)參數(shù)是干嘛的呢?是指每次搬運(yùn)這么多個(gè)數(shù)據(jù)嗎?
作者: Y_G_G    時(shí)間: 2022-4-25 17:31
風(fēng)吹過(guò)又見你 發(fā)表于 2022-4-25 15:45
是不是說(shuō)DMA在循環(huán)模式下,ADC轉(zhuǎn)換成功一次就會(huì)觸發(fā)DMA搬運(yùn)一次數(shù)據(jù)。在DMA搬運(yùn)數(shù)據(jù)中,有一個(gè)數(shù)據(jù)大小,這 ...

是的是的,每次ADC成功轉(zhuǎn)換一次就搬運(yùn)一次
但并不是每次搬運(yùn)100個(gè),只是把ADC的數(shù)據(jù)(就是12位ADC結(jié)果)搬運(yùn)到DMA初始化時(shí)所指定的地址而已
但你說(shuō)的"數(shù)據(jù)大小"不知道指的是什么,代碼上傳一下
可能是教材不一樣吧,我這本書里只有數(shù)據(jù)位寬和存儲(chǔ)長(zhǎng)度,沒(méi)有大小這一說(shuō)
作者: 風(fēng)吹過(guò)又見你    時(shí)間: 2022-4-25 17:55
就是圈出來(lái)了的那一行代碼

mmexport1650880498549.png (420.01 KB, 下載次數(shù): 29)

mmexport1650880498549.png

作者: Y_G_G    時(shí)間: 2022-4-25 20:34
風(fēng)吹過(guò)又見你 發(fā)表于 2022-4-25 17:55
就是圈出來(lái)了的那一行代碼

DMA_BufferSize就是指定DMA緩存的大小
就是留下多少個(gè)地址來(lái)存放ADC結(jié)果的意思
比如說(shuō)你要保存100組ADC數(shù)據(jù),那這個(gè)值就是100
實(shí)際上它就是等于(u32)dma1_data_buff這個(gè)數(shù)組的總長(zhǎng)度,如果是二維數(shù)組,那就是行*列
作者: 風(fēng)吹過(guò)又見你    時(shí)間: 2022-4-26 02:31
Y_G_G 發(fā)表于 2022-4-25 20:34
DMA_BufferSize就是指定DMA緩存的大小
就是留下多少個(gè)地址來(lái)存放ADC結(jié)果的意思
比如說(shuō)你要保存100組ADC ...

也就是說(shuō)DMA會(huì)保存最新100個(gè)ADC所測(cè)量的數(shù)值嗎?如果有新的一輪數(shù)據(jù)將會(huì)覆蓋掉舊的是吧!但硬件觸發(fā)DMA搬運(yùn),仍然是ADC轉(zhuǎn)換成功一次就會(huì)觸發(fā)一次咯,還是說(shuō)先保存下100個(gè)數(shù)據(jù)再硬件觸發(fā)一次DMA搬運(yùn)?
作者: Y_G_G    時(shí)間: 2022-4-26 10:31
風(fēng)吹過(guò)又見你 發(fā)表于 2022-4-26 02:31
也就是說(shuō)DMA會(huì)保存最新100個(gè)ADC所測(cè)量的數(shù)值嗎?如果有新的一輪數(shù)據(jù)將會(huì)覆蓋掉舊的是吧!但硬件觸發(fā)DMA搬 ...

我都說(shuō)得這么明白,還不理解?"這100個(gè)數(shù)據(jù)就一直是最近100次ADC的數(shù)據(jù)"
不是一輪數(shù)據(jù),是每次ADC成功轉(zhuǎn)換之后的一個(gè)數(shù)據(jù),"一個(gè)數(shù)據(jù)"明白不?
然后,DMA的100個(gè)數(shù)據(jù)中,最先保存那個(gè)數(shù)據(jù)會(huì)被替換成本次ADC的數(shù)據(jù),類似于堆棧溢出或者像數(shù)組溢出一樣的方式,把最先保存的數(shù)據(jù)給擠出去(不要問(wèn)擠出去的數(shù)據(jù)到哪里了)
作者: yzwzfyz    時(shí)間: 2022-4-26 16:28
查DAM手冊(cè),找到觸發(fā)DAM的方式。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1