GD32 ADC2配置
时间: 2024-02-29 07:47:41 浏览: 125
GD32时钟配置代码学习工程
GD32 ADC2是一种模数转换器,可以将模拟信号转换为数字信号。下面是GD32 ADC2的配置方法:
1. 首先需要初始化ADC2,包括时钟使能、模式设置、采样时间设置等。
2. 然后需要配置ADC2的通道,可以使用单通道或多通道模式,需要设置通道的采样时间和顺序。
3. 如果需要使用DMA传输数据,需要配置DMA通道和缓冲区。
4. 最后需要使能ADC2和DMA,并启动转换。
下面是一个ADC2+DMA的配置代码示例:
引用:
```
// 初始化ADC2
rcu_periph_clock_enable(RCU_ADC2);
adc_deinit(ADC2);
adc_mode_config(ADC_MODE_FREE);
adc_special_function_config(ADC2, ADC_SCAN_MODE, ENABLE);
adc_data_alignment_config(ADC2, ADC_DATAALIGN_RIGHT);
adc_channel_length_config(ADC2, ADC_INSERTED_CHANNEL, 1);
adc_inserted_channel_config(ADC2, 0, ADC_CHANNEL_0, ADC_SAMPLETIME_15);
adc_external_trigger_source_config(ADC2, ADC_INSERTED_CHANNEL, ADC_EXTTRIG_INSERTED_NONE);
adc_calibration_enable(ADC2);
// 配置DMA
dma_parameter_struct dma_init_struct;
dma_deinit(DMA0, DMA_CH1);
dma_struct_para_init(&dma_init_struct);
dma_init_struct.direction = DMA_PERIPHERAL_TO_MEMORY;
dma_init_struct.memory_addr = (uint32_t)adc_value;
dma_init_struct.memory_inc = DMA_MEMORY_INCREASE_ENABLE;
dma_init_struct.memory_width = DMA_MEMORY_WIDTH_16BIT;
dma_init_struct.number = 1;
dma_init_struct.periph_addr = (uint32_t)&ADC_RDATA(ADC2);
dma_init_struct.periph_inc = DMA_PERIPH_INCREASE_DISABLE;dma_init_struct.periph_width = DMA_PERIPHERAL_WIDTH_16BIT;
dma_init_struct.priority = DMA_PRIORITY_HIGH;
dma_init(DMA0, DMA_CH1, &dma_init_struct);
// 启动ADC2和DMA
adc_dma_mode_enable(ADC2);
dma_channel_enable(DMA0, DMA_CH1);
adc_software_trigger_enable(ADC2, ADC_INSERTED_CHANNEL);
```
阅读全文