找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3853|回復: 0
收起左側(cè)

stm32 ADC12路采集DMA程序源碼

[復制鏈接]
ID:280323 發(fā)表于 2018-11-21 17:38 | 顯示全部樓層 |閱讀模式
這里配置一個ADC多路ADC同時觸發(fā)的DMA程序,

ADC配置
ADC_DeInit(ADC1);                                                                                                                  //復位ADC1,將外設 ADC1 的全部寄存器重設為缺省值

        ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;                                                //ADC工作模式:ADC1和ADC2工作在獨立模式
        ADC_InitStructure.ADC_ScanConvMode = ENABLE;                                                        //模數(shù)轉(zhuǎn)換工作在掃描模式
        ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;                                                //模數(shù)轉(zhuǎn)換工作在連續(xù)轉(zhuǎn)換模式
        ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;                //轉(zhuǎn)換由軟件而不是外部觸發(fā)啟動
        ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;                                        //ADC數(shù)據(jù)右對齊
        ADC_InitStructure.ADC_NbrOfChannel = N;                                                                //順序進行規(guī)則轉(zhuǎn)換的ADC通道的數(shù)目
        ADC_Init(ADC1, &ADC_InitStructure);        

DMA配置

DMA_DeInit(DMA1_Channel1);                                                                                                                   //將DMA的通道1寄存器重設為缺省值          DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC1->DR;                                          //定義DMA外設基地址為ADC1          DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADC_RCVTab;                                         //定義DMA內(nèi)存基地址          DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;                                                                  //外設作為數(shù)據(jù)傳輸?shù)膩碓?nbsp;         DMA_InitStructure.DMA_BufferSize = N*16;                                                                                          //定義指定DMA通道的DMA緩存的大小          DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;                                  //外設地址寄存器不變          DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;                                                        //內(nèi)存地址寄存器遞增          DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;                //數(shù)據(jù)寬度為16位          DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;                                //數(shù)據(jù)寬度為16位          DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;                                                                          //工作在循環(huán)緩存模式          DMA_InitStructure.DMA_Priority = DMA_Priority_High;                                                                //DMA通道1擁有高優(yōu)先級          DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;                                                                        //DMA通道1沒有設置為內(nèi)存到內(nèi)存?zhèn)鬏?nbsp;         DMA_Init(DMA1_Channel1, &DMA_InitStructure);

配置ADC轉(zhuǎn)換順序及周期
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 0, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 2, ADC_SampleTime_1Cycles5);                ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 3, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 4, ADC_SampleTime_1Cycles5);         ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 5, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 6, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 7, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 8, ADC_SampleTime_1Cycles5);         ADC_RegularChannelConfig(ADC1, ADC_Channel_9, 9, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 10, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 11, ADC_SampleTime_1Cycles5);

         

stm32adc12路采集DMA.rar

345.94 KB, 下載次數(shù): 42, 下載積分: 黑幣 -5

源代碼

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表