標(biāo)題:
STM32F4 ADC+DMA例程 基于MDK項目實例源碼
[打印本頁]
作者:
lionlike
時間:
2017-5-21 18:44
標(biāo)題:
STM32F4 ADC+DMA例程 基于MDK項目實例源碼
基于MDK項目實例
0.png
(48.32 KB, 下載次數(shù): 103)
下載附件
2017-5-21 21:09 上傳
單片機(jī)源程序如下:
#include "adc.h"
ADC_HandleTypeDef AdcHandle;
void ADC1_MspInit(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
static DMA_HandleTypeDef hdma_adc;
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_ADC1_CLK_ENABLE();
__HAL_RCC_DMA2_CLK_ENABLE();
//GPIOC2-5:ADC1-12:15
GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
hdma_adc.Instance = DMA2_Stream0;
hdma_adc.Init.Channel = DMA_CHANNEL_0;
hdma_adc.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_adc.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_adc.Init.MemInc = DMA_MINC_ENABLE;
hdma_adc.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
hdma_adc.Init.MemDataAlignment = DMA_PDATAALIGN_HALFWORD;
hdma_adc.Init.Mode = DMA_CIRCULAR;
hdma_adc.Init.Priority = DMA_PRIORITY_HIGH;
hdma_adc.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
hdma_adc.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_HALFFULL;
hdma_adc.Init.MemBurst = DMA_MBURST_SINGLE;
hdma_adc.Init.PeriphBurst = DMA_PBURST_SINGLE;
HAL_DMA_Init(&hdma_adc);
/* Associate the initialized DMA handle to the the ADC handle */
__HAL_LINKDMA(&AdcHandle, DMA_Handle, hdma_adc);
/*##-4- Configure the NVIC for DMA #########################################*/
/* NVIC configuration for DMA transfer complete interrupt */
HAL_NVIC_SetPriority(DMA2_Stream0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn);
}
void ADC1_Init(void)
{
AdcHandle.Instance = ADC1;
AdcHandle.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV2;
AdcHandle.Init.Resolution = ADC_RESOLUTION_12B;
AdcHandle.Init.ScanConvMode = ENABLE;
AdcHandle.Init.ContinuousConvMode = ENABLE;
AdcHandle.Init.DiscontinuousConvMode = DISABLE;
AdcHandle.Init.NbrOfDiscConversion = 0;
AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
AdcHandle.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T1_CC1;
AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT;
AdcHandle.Init.NbrOfConversion = 4;
AdcHandle.Init.DMAContinuousRequests = ENABLE;
AdcHandle.Init.EOCSelection = DISABLE;
ADC1_MspInit();
if(HAL_ADC_Init(&AdcHandle) != HAL_OK)
{
/* Initialization Error */
while(1);
}
}
void ADC1_Config(void)
{
ADC_ChannelConfTypeDef sConfig;
//channel - 12
sConfig.Channel = ADC_CHANNEL_12;
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
sConfig.Offset = 0;
HAL_ADC_ConfigChannel(&AdcHandle, &sConfig);
//channel - 13
sConfig.Channel = ADC_CHANNEL_13;
sConfig.Rank = 2;
HAL_ADC_ConfigChannel(&AdcHandle, &sConfig);
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
ADC DMA.rar
(4.53 MB, 下載次數(shù): 69)
2017-5-21 18:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
yfl236415
時間:
2017-11-27 11:17
新手教程 下來看看!謝謝大大
作者:
easyeasier
時間:
2018-9-7 23:10
小白,求學(xué)習(xí)
作者:
jiangkeqin_sy
時間:
2018-9-14 08:56
單片機(jī)源程序如下:新手教程 下來看看!謝謝大大
作者:
wdliming
時間:
2018-11-2 16:29
謝謝分享~~~
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1