wwwicq 发表于 2022-10-13 11:53

国民技术N32G031使用经验2_ADC采集

国民技术N32G031使用经验2_ADC采集:
    国民技术ARM系列芯片性价比高,使用方便,唯独官方例子太少,因此在这贴出常用部分代码,供初用者参考改进:
void ADC_Initial(void)
{
      ADC_InitType ADC_InitStructure;
      GPIO_InitType GPIO_InitStructure;
   
      ADC_DeInit(ADC);
   
      //RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
    //RCC_EnableAHBPeriphClk(RCC_AHB_PERIPH_ADC, ENABLE); /* Enable ADC clocks */
   
      RCC_ConfigAdc1mClk(RCC_ADC1MCLK_SRC_HSI, RCC_ADC1MCLK_DIV8);
    ADC_ConfigClk(ADC_CTRL3_CKMOD_AHB, RCC_ADCHCLK_DIV16); /* RCC_ADCHCLK_DIV16*/
      
    GPIO_InitStruct(&GPIO_InitStructure);
    /* Configure PA as analog input -------------------------*/
    GPIO_InitStructure.Pin       = GPIO_PIN_3;
    GPIO_InitStructure.GPIO_Mode = GPIO_MODE_ANALOG;
    GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure);
      
    /* ADC configuration ------------------------------------------------------*/
    ADC_InitStructure.MultiChEn      = DISABLE;
    ADC_InitStructure.ContinueConvEn = DISABLE;
    ADC_InitStructure.ExtTrigSelect= ADC_EXT_TRIGCONV_NONE;
    ADC_InitStructure.DatAlign       = ADC_DAT_ALIGN_R;
    ADC_InitStructure.ChsNumber      = 1;
    ADC_Init(ADC, &ADC_InitStructure);
//    /* ADC1 regular channel13 configuration */
//    ADC_ConfigRegularChannel(ADC, ADC_CH_13_PC2, 1, ADC_SAMP_TIME_55CYCLES5);
//    /* Enable ADC DMA */
//    ADC_EnableDMA(ADC, ENABLE);

    //ADC_EnableVrefint(ENABLE);

    /* Enable ADC */
    ADC_Enable(ADC, ENABLE);
    /* Check ADC Ready */
    while(ADC_GetFlagStatusNew(ADC,ADC_FLAG_RDY) == RESET)
      ;
    while(ADC_GetFlagStatusNew(ADC,ADC_FLAG_PD_RDY))
      ;
}

uint16_t ADC_GetData(uint8_t ADC_Channel)
{
    uint16_t dat;
    ADC_ConfigRegularChannel(ADC, ADC_Channel, 1, ADC_SAMP_TIME_56CYCLES5);
    /* Start ADC Software Conversion */
    ADC_EnableSoftwareStartConv(ADC,ENABLE);
    while(ADC_GetFlagStatus(ADC,ADC_FLAG_ENDC)==0){
    }
    ADC_ClearFlag(ADC,ADC_FLAG_ENDC);
    ADC_ClearFlag(ADC,ADC_FLAG_STR);
    dat=ADC_GetDat(ADC);
    return dat;
}

mj8abcd 发表于 2022-10-13 17:01

罗塘阮经天 发表于 2022-10-13 22:25

谢谢分享

zhang_tao_08 发表于 2022-10-14 08:23

bidezhi7777 发表于 2022-10-14 08:38

longxuekai 发表于 2022-10-15 01:38

了解一下吧

kingweison 发表于 2023-12-28 09:23

weikamd 发表于 2026-6-18 08:59

何岱宗 发表于 2026-6-24 11:56

gfshao 发表于 2026-8-7 09:01

值得学习
页: [1]
查看完整版本: 国民技术N32G031使用经验2_ADC采集