配置主频16M,AHB,APB1分频,ADC时钟为PCLK的1分频,采样3周期,只做1个通道的转换,软件触发,查询等待转换结束, 
void system_clock_config(void) 
{ 
    /* 设置Flash读访问等待时间 */ 
    std_flash_set_latency(FLASH_LATENCY_0CLK);   //16M 
    /* 使能RCH */ 
    std_rcc_rch_enable(); 
    while(std_rcc_get_rch_ready() != RCC_CSR1_RCHRDY); 
 
    /* 设置系统时钟源为RCH */ 
    std_rcc_set_sysclk_source(RCC_SYSCLK_SRC_RCHDIV3);    //16M 
    while(std_rcc_get_sysclk_source() != RCC_SYSCLK_SRC_STATUS_RCHDIV3); 
 
    /* 设置AHB分频因子 */ 
    std_rcc_set_ahbdiv(RCC_HCLK_DIV1); 
    /* 设置APB分频因子 */ 
    std_rcc_set_apbdiv(RCC_PCLK_DIV1); 
    /* 配置系统时钟全局变量 */ 
    SystemCoreClock = RCH_VALUE/3; 
} 
 
void adc_init(void) 
{ 
    /* 使能ADC时钟 */ 
    std_rcc_apb2_clk_enable(RCC_PERIPH_CLK_ADC); 
        
    /* ADC_CK时钟为PCLK的1分频 */ 
    std_adc_clock_config(ADC_CK_DIV1); 
    /* 软件触发ADC */ 
    std_adc_trig_sw(); 
 
    /* 单次转换模式 */ 
    std_adc_conversion_mode_config(ADC_SINGLE_CONVER_MODE); 
     
    /* 采样时间配置,3个周期*/ 
    std_adc_sampt_time_config(ADC_SAMPTIME_3CYCLES); 
    /* 选择通道0 */ 
    std_adc_fix_sequence_channel_enable(ADC_CHANNEL_0); 
     
    /* 配置wait模式,避免数据未及时读取,转换溢出 */ 
    std_adc_wait_mode_enable(); 
 
    std_adc_internal_channel_vbgr_enable(); 
    /* 使能ADC */ 
    std_adc_enable(); 
     
    /* 等待ADC使能状态稳定 */ 
    delayus(ADC_EN_DELAY); 
} 
利用一个IO口指示转换时间,在IO口高电平时间约为7.5us,相当于转换速度133k 
 
    DEBUGIO_HIGH(); 
    std_adc_fix_sequence_channel_disable(ADC_CHANNEL_VBGR); 
    std_adc_fix_sequence_channel_enable(ADC_CHANNEL_0); 
    std_adc_start_conversion(); 
    while(std_adc_get_flag(ADC_FLAG_EOC) == 0U); 
    std_adc_clear_flag(ADC_FLAG_EOC); 
    adc_buff[adc_counts] = std_adc_get_conversion_value(); 
    adc_counts++; 
    DEBUGIO_LOW(); 
 
 
 |   
     
  
 |