完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
主函数如下 int main(void) { u8 i; u16 t; u32 temp =0; u16 adcx; u8 table[6]; u8 *p = table; STM32_Clock_Init(9); delay_init(72); USART_Initaize(72,9600); LED_Init(); LCD_Init(); OINT_COLOR=BLUE;//设置字体为蓝色 LCD_ShowString(60,130,"ADC_CH0_VAL:"); Adc_Init(); //内部包含了MYDMA_Config(……);函数 while(1){ //一下三行调试时用,方便观测ADC是否开启 u16 adc; adc = Get_Adc(ADC_CH0); //规则序列中的第一个转换 // !!!!!这里采集来的值在用DMA传输前后不一致,大概小了400左右 LCD_ShowNum(156,130,adc,4,16); delay_ms(10); if(DMA1->ISR&(1<<1)) //传输完成了 { LED1 = !LED1;//方便调试而已 for(t=0;t<10;t++) { LCD_ShowNum(156,100,Adc_Buf[t],4,16); temp = temp + Adc_Buf[t]; } temp = temp /10; //取平均值 LCD_ShowNum(156,155,temp,4,16); adcx=temp*330/4096; table[0]= adcx / 100 + 0x30; table[1]= '.'; table[2]= adcx % 100/10 + 0x30; table[3]= adcx %10 + 0x30; table[4]= 'V'; table[5] = ' |
