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???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>