DMA ADC 收到的数据为0,ADC工作,为什么DMA不工作呢

2019-07-20 01:30发布

int main(void)
{
        uint16_t  ADCConvertedValue,adcx;
        float temp;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);   
        uart_init(115200);       
        LED_Init();                               
        LCD_Init();                                       
        KEY_Init();                        
        Adc_Init();                               
        MYDMA_Config(DMA2_Stream0,DMA_Channel_0,(u16)&(ADC1->DR),(u16)&ADCConvertedValue,1);
        LCD_ShowString(30,130,200,16,16,"ADC1_CH5_VAL:");             
        LCD_ShowString(30,150,200,16,16,"ADC1_CH5_VOL:0.000V");       
        POINT_COLOR=BLUE;
       
        ADC_SoftwareStartConv(ADC1);                     
        ADC_DMACmd(ADC1,ENABLE);                                                                                                               
        MYDMA_Enable(DMA2_Stream0,1);                                                                                       
        while(1)
        {
                adcx=ADCConvertedValue;
                LCD_ShowxNum(134,130,adcx,4,16,0);   
                temp=(float)adcx*(3.3/4096);         
                adcx=temp;                          
                LCD_ShowxNum(134,150,adcx,1,16,0);   
                temp-=adcx;                          
                temp*=1000;                          
                LCD_ShowxNum(150,150,temp,3,16,0X80);
                LED0=!LED0;
                delay_ms(250);       
                printf("%d ",adcx);
                delay_ms(2000);
        }
}



小萌新一直头大这个问题,显示屏显示出来就是电压数字值和模拟值都是0,得出的原因是ADCConvertedValue一直为0,为什么DMA不把adc转换过得值复制给ADCConvertedValue???

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
daisy111
1楼-- · 2019-07-20 03:02
 精彩回答 2  元偷偷看……
peng1554
2楼-- · 2019-07-20 04:52
 精彩回答 2  元偷偷看……
daisy111
3楼-- · 2019-07-20 09:24
peng1554 发表于 2019-4-18 17:51
可能与DMA设置有关,可以找找论坛这边分享得程序参考下,蛮多这种的资料的

好的  谢谢
shichuang
4楼-- · 2019-07-20 14:55
在你Adc_Init()函数里面有没有对DMA进行初始化???
daisy111
5楼-- · 2019-07-20 20:34
 精彩回答 2  元偷偷看……
问题很大
6楼-- · 2019-07-20 22:34
 精彩回答 2  元偷偷看……

一周热门 更多>