-
【求助】HC32L110C6PA使用ADC电压数据采集
用万用表测量这个引脚是0.65v,但串口接收到AD值为459,电压是0.33v。然后我更改了基准电压,但AD仍为409不变,到底是什么原因各位大佬救我,求路过不平拔刀相助啊#include"adc.h"#include"gpio.h"#include"Serial.h"staticuint32_tu32AdcResultAcc;floatAverage;floatVoltage;voidAdcContIrqCallback(void){Adc_GetAccResult(&u32AdcResultAcc);Adc_ClrAccResult();Average=(float)u32AdcResultAcc/10;Voltage=Average/4095.0f*3.3f;charadcStr[64];sprintf(adcStr,"ADRaw:%.2f,Voltage:%.3fV\r\n",Average,Voltage);Uart_SendString((uint8_t*)adcStr);Adc_ClrContIrqState();}voidAdcRegIrqCallback(void){}voidAdcHhtIrqCallback(void){}voidAdcLltIrqCallback(void){}en_result_tAD_Init(void){stc_adc_cfg_tstcAdcCfg;stc_adc_cont_cfg_tstcAdcContCfg;stc_adc_irq_tstcAdcIrq;stc_adc_irq_calbakfn_pt_tstcAdcIrqCalbaks;DDL_ZERO_STRUCT(stcAdcCfg);DDL_ZERO_STRUCT(stcAdcContCfg);DDL_ZERO_STRUCT(stcAdcIrq);DDL_ZERO_STRUCT(stcAdcIrqCalbaks);Clk_SwitchTo(ClkRCL);Clk_SetRCHFreq(ClkFreq24Mhz);Clk_SwitchTo(ClkRCH);Clk_SetPeripheralGate(ClkPeripheralGpio,TRUE);//GPIO外设时钟使能if(Ok!=Clk_SetPeripheralGate(ClkPeripheralAdcBgr,TRUE))//ADCBGR外设时钟使能{returnError;}Gpio_SetAnalog(3,2,TRUE);//设为模拟输入Gpio_InitIOExt(3,2,GpioDirIn,FALSE,FALSE,0,FALSE);//ADC配置M0P_BGR->CR_f.BGR_EN=0x1u;//BGR必须使能M0P_BGR->CR_f.TS_EN=0x0u;//内置温度传感器,视使用需求delay1ms(15);stcAdcCfg.enAdcOpMode=AdcContMode;//连续采样模式stcAdcCfg.enAdcClkSel=AdcClkSysTDiv1;//PCLKstcAdcCfg.enAdcSampTimeSel=AdcSampTime8Clk;//8个采样时钟//stcAdcCfg.enAdcRefVolSel=RefVolSelInBgr2p5;//参考电压:内部2.5V(avdd>3V,SPS
2025-12-08 1

问答