*************************************************/
uint8_t Adc_Config(void)
{
stc_adc_cfg_t stcAdcCfg;
stc_adc_scan_cfg_t stcAdcScanCfg;
DDL_ZERO_STRUCT(stcAdcCfg);
DDL_ZERO_STRUCT(stcAdcScanCfg);
if (Ok != Clk_SetPeripheralGate(ClkPeripheralAdcBgr, TRUE)) //ADCBGR 外设时钟使能
{
return Error;
}
Gpio_SetAnalog(3, 2, TRUE); //VCC
Gpio_SetAnalog(3, 3, TRUE); //LED
// Gpio_SetAnalog(3, 4, TRUE); //LED
Adc_Enable();
M0P_BGR->CR_f.BGR_EN = 0x1u; //BGR必须使能
M0P_BGR->CR_f.TS_EN = 0x0u; //内置温度传感器,视使用需求
delay100us(1);
stcAdcCfg.enAdcOpMode =AdcScanMode; // //扫描采样模式
stcAdcCfg.enAdcClkSel = AdcClkSysTDiv1; //PCLK
stcAdcCfg.enAdcSampTimeSel = AdcSampTime12Clk; //采样时钟
// stcAdcCfg.enAdcRefVolSel = RefVolSelInBgr2p5; //参考电压:内部2.5V(avdd>3V,SPS<=200kHz)
stcAdcCfg.enAdcRefVolSel = RefVolSelAVDD; //参考电压:AVDD
stcAdcCfg.bAdcInBufEn = FALSE; //电压跟随器如果使能,SPS采样速率 <=200K
stcAdcCfg.enAdcTrig0Sel = AdcTrigDisable; //ADC转换自动触发设置
stcAdcCfg.enAdcTrig1Sel = AdcTrigDisable;
Adc_Init(&stcAdcCfg); //ADC初始化
stcAdcScanCfg.u8AdcScanModeCh = ADC_SCAN_CH2_EN | ADC_SCAN_CH3_EN ; //ADC_SCAN_CH4_EN
stcAdcScanCfg.u8AdcSampCnt = 0x2; //连续扫描转换次数,保持通道的倍数,6通道 = 0x5+1(1倍),或者11+1(2倍)……
Adc_ConfigScanMode(&stcAdcCfg, &stcAdcScanCfg); //配置扫描转换模式
}
/************************************************ |