在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > stm32 雙adc 采集問題 dma數據有一個沒有 adc2為0

            stm32 雙adc 采集問題 dma數據有一個沒有 adc2為0

            作者: 時間:2016-11-10 來源:網絡 收藏
            配置那些就不說了,我這里是同步規(guī)則采樣,共4通道:

            本文引用地址:http://www.biyoush.com/article/201611/317107.htm
            [cpp]view plaincopy
            1. /*RegularChannelÉèÖòɼ¯Ë³ÐòºÍʱ¼ä.ÉèÖóÉË«adcºó,dmaÓÃ32bit´«Êä,µÍ16bitÊÇadc1ͨµÀ,¸ß16bitÊÇadc2ͨµÀ*/
            2. ADC_RegularChannelConfig(ADC1,CH0_ADL1,1,ADC_SampleTime_13Cycles5);//0
            3. ADC_RegularChannelConfig(ADC1,CH1_ADL2,2,ADC_SampleTime_13Cycles5);//2
            4. ADC_RegularChannelConfig(ADC1,CH8_ADR1,3,ADC_SampleTime_13Cycles5);//4
            5. ADC_RegularChannelConfig(ADC1,CH9_ADR2,4,ADC_SampleTime_13Cycles5);//6
            6. /*RegularChannel*/
            7. ADC_RegularChannelConfig(ADC2,CH9_ADR2,1,ADC_SampleTime_13Cycles5);//1
            8. ADC_RegularChannelConfig(ADC2,CH8_ADR1,2,ADC_SampleTime_13Cycles5);//3
            9. ADC_RegularChannelConfig(ADC2,CH1_ADL2,3,ADC_SampleTime_13Cycles5);//5
            10. ADC_RegularChannelConfig(ADC2,CH0_ADL1,4,ADC_SampleTime_13Cycles5);//7


            使用的是ac連續(xù)采樣,dma連續(xù)搬運模式。注意點如下:

            1、數組要定義為u32的,例如u32 buf[4],不要定義為u16 buf[8],經過測試,如果使用 u16 buf[8] 最后一個16bit buf[7]會為0,不知道為什么。

            2、adc2有2種方式可以啟動,一種是:

            ADC_ExternalTrigConvCmd(ADC2,ENABLE); /*adc2¹æÔòͨµÀÍⲿ´¥· */

            另一種是:

            ADC_SoftwareStartConvCmd(ADC2,ENABLE);

            這2種方法會帶來一個不同的結果,細分析如下:

            如上所述轉換序列,正常情況是buf32[0] & 0xFFFF與(buf32[3]>>0xFFFF)是同一組數據,拿buf16[8]來說就是buf16[0]、buf[7]是一組數據,可是改變adc2的觸發(fā)方式有什么區(qū)別呢?

            ================使用buf16[8] +ADC_SoftwareStartConvCmd(ADC2,ENABLE);方式===============

            此組合可以得到正確的數組對應方式,即dma搬來的數據與我們預期的是對應的。但是buf16[7]=0

            ================使用buf16[8] +ADC_ExternalTrigConvCmd(ADC2,ENABLE);方式===============

            此組合不可以得到正確的數組對應方式,即dma搬來的數據與我們預期的是不對應的。而且buf16[7]=0

            ================使用buf32[4] +ADC_SoftwareStartConvCmd(ADC2,ENABLE);方式===============

            此組合不可以得到正確的數組對應方式,即dma搬來的數據與我們預期的是不對應的。

            ================使用buf32[4] +ADC_ExternalTrigConvCmd(ADC2,ENABLE);方式===============

            此組合可以得到正確的數組對應方式,即dma搬來的數據與我們預期的是對應的。


            好,這就是我的調試心得,大家避免注意下就好了。

            這里有一個單ADC同步規(guī)則+同步注入的例子:http://www.csdn123.com/html/itweb/20130801/33722_33714_33696.htm。

            貌似單個ADC好用,兩個的同步注入有問題????

            ===========繼續(xù)補充20160419================

            之前的注入通道數據有問題,把他的采樣率該慢點就可以了,視自己情況而定,慢慢調試吧!



            評論


            技術專區(qū)

            關閉