void ADC_init(void)
{
//1开时钟 //PA1->j4->ADC_IN1
rcu_periph_clock_enable(ADC);
//设置预分频值
rcu_adc_clock_config(RCU_ADC_CKAPB2_DIV8);
rcu_periph_clock_enable(RCU_GPIOA);
//2配置为模拟模式gpio_mode_set(GPIOA,GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_1);
//清除状态
adc_deinit();
//配置特殊寄存器 禁用扫描模式 和 连续模式
adc_special_function_config(ADC_SCAN_MODE,DISABLE);
adc_special_function_config(ADC_CONTINUOUS_MODE,DISABLE);
//5 单通道采集 通道长度为1
adc_channel_length_config(ADC_REGULAR_CHANNEL,1);
adc_regular_channel_config(0,ADC_CHANNEL_1,ADC_SAMPLETIME_239POINT5);
adc_external_trigger_config(ADC_REGULAR_CHANNEL,ENABLE);
//adc外部触发源 CTL1的17 18 19 位是设置触发源 全1为软件触发
adc_external_trigger_source_config(ADC_REGULAR_CHANNEL,0xe0000);
adc_data_alignment_config(ADC_DATAALIGN_RIGHT)
//ADC使能生效
adc_enable();
//ADC校验
adc_calibration_enable();
delay_1ms(100);
//ADC软件触发
//adc_software_trigger_enable(ADC_REGULAR_CHANNEL);
//ADC_CTL1 |= ADC_CTL1_SWRCST;
}
第一次接触gd32的板子还不是很熟练,麻烦各位大佬帮忙看一下 谢谢了
更多回帖