|
ADC程序希望可以幫到新朋友- #include "delay.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "adc.h"
- #include "dma.h"
-
- #define ADC1_DR_Address ((uint32_t)0x4001244C)
- u16 AD_Value[6];
- float volta[6];
- u8 i;
-
- int main(void)
- {
- delay_init(); //延時(shí)函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- uart_init(9600); //串口初始化為115200
- MYDMA_Config(DMA1_Channel1,(u32)ADC1_DR_Address,(u32)&AD_Value,6);//cndtr對(duì)應(yīng)所開(kāi)信道個(gè)數(shù)
- Adc_Init();
- DMA_Cmd(DMA1_Channel1, ENABLE); //啟動(dòng)DMA通道
- ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的軟件轉(zhuǎn)換啟動(dòng)功能
- while(1)
- {
- for(i=0;i<6;i++) //循環(huán)6次轉(zhuǎn)換AD值
- {
- volta[i] =(float) AD_Value[i]/4095*3.3;
- }
- printf("AD1=%d\n",AD_Value[0]); printf("\r\n volta1 = %f V \r\n",volta[0]);
- printf("AD2=%d\n",AD_Value[1]); printf("\r\n volta2 = %f V \r\n",volta[1]);
- printf("AD3=%d\n",AD_Value[2]); printf("\r\n volta3 = %f V \r\n",volta[2]);
- printf("AD4=%d\n",AD_Value[3]); printf("\r\n volta4 = %f V \r\n",volta[3]);
- printf("AD5=%d\n",AD_Value[4]); printf("\r\n volta5 = %f V \r\n",volta[4]);
- printf("AD6=%d\n",AD_Value[5]); printf("\r\n volta6 = %f V \r\n",volta[5]);
- delay_ms(1000);
- }
- }
復(fù)制代碼
|
-
-
六路ADC+DMA傳輸.7z
2020-9-27 14:33 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
223.78 KB, 下載次數(shù): 65, 下載積分: 黑幣 -5
|