ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1)); 2. DMA配置 2.1 初始化DMA 初始化DMA,用于从ADC读取数据。 DMA_InitTypeDef DMA_InitStructure; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t) &ADC1->DR; DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t) &adc_value; DMA...
2.配置触发定时器 3.配置ADC的DMA 1.添加ADC缓冲区 2.添加初始化代码 cubemx 1.配置pin分布 将想要采样的AD引脚配置为对应通道的AD输入模式 配置ADC引脚对应的通道为Single-ended模式(如果没有Single-ended直接勾选就行) 2.配置触发定时器 选择一个不常用的定时器作为ADC触发源,软件触发会很慢,这里选择定时器7...
接下来配置ADC ADC1_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC模式(是否启用双ADC模式) 使用独立模式ADC1_InitStructure.ADC_ScanConvMode = ENABLE; //扫描模式(单通道与多通道) 使能扫描模式ADC1_InitStructure.ADC_ContinuousConvMode = ENABLE; //连续模式(连续模式或是单次模式) 使能连续模式ADC1_...
1、选择ADC的输入通道 2、设置DMA为循环模式、半字传输、外设到内存 3、添加Rank列表参数,这一步是你有几个ADC通道就写几个Rank值 之后扫描存储的顺序就会按照你这里设定的通道,从1到3顺序读取和保存到数组中 4、使能扫描模式、连续模式、DMA 5、修改ADC的频率 因为ADC的频率不能超过12M,所以你要在时钟树中修...
static void ADC_MODE_CONFIG_(void) { DMA_InitTypeDef DMA_InitInstructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE); DMA_DeInit(DMA1_Channel1);//复位 DMA_InitInstructure.DMA_PeripheralBaseAddr =(u32)(&(ADC1->DR));//配置外设的基址,取adc ...
1.配置ADC1时钟,通道个数,通道采集顺序,通道采样周期,无外部触发,配置DMA。 2.配置ADC2时钟,通道个数,通道采集顺序,通道采样周期,无外部触发。 注: 1.ADC2不需要配置DMA。 2.这里ADC2的Rank配置中最后的2个通道都配置为通道1的原因,查看同步规则模式图示。
通过DMA传输ADC转换结果至内存中,避免CPU占用。二、主要步骤1. 配置ADC多通道在STM32CubeMX中:选择ADC...
1#defineADC_CHAN_CNT 42#defineADC_FILETER_SIZE 3234int16_tadc_values[ADC_FILETER_SIZE*ADC_CHAN_CNT]; 2.3 ADC配置为DMA读取和Timer触发 定时器设置 1voidtim3_setup(void)2{3/* Enable TIM3 clock. */4rcc_periph_clock_enable(RCC_TIM3);56/* Enable TIM3 interrupt. */7nvic_enable_irq(NV...
STM32的ADC为12位,AD最大值是4095,对应最大电压3.3V,可对0-3.3v之间的任意电压量化,所以ADC...