本帖最后由 ZG11211 于 2021-4-4 22:22 编辑
需要用到HC32L136J8TA内置温度传感器,怎奈试了很多次都不对,度数与两个校准地址的数据相差很大,0x00100C36读数为0x0592,0x00100C34读数为0x093C,手册中示例校准值为0x076C;
初始化代码
///< 开启ADC/BGR 外设时钟
Sysctrl_SetPeripheralGate(SysctrlPeripheralAdcBgr, TRUE);
Bgr_BgrEnable(); ///< 开启BGR
Bgr_TempSensorEnable();//BGR 温度传感器使能(需要先开启BGR)
///< ADC 初始化配置
//stcAdcCfg.enAdcMode = AdcSglMode; ///<采样模式-单次
stcAdcCfg.enAdcMode = AdcScanMode; ///<采样模式-扫描
stcAdcCfg.enAdcClkDiv = AdcMskClkDiv1; ///<采样分频-1
stcAdcCfg.enAdcSampCycleSel = AdcMskSampCycle12Clk; ///<采样周期数-12
stcAdcCfg.enAdcRefVolSel = AdcMskRefVolSelInBgr2p5; ///<参考电压选择-内部2.5V
stcAdcCfg.enAdcOpBuf = AdcMskBufEnable; ///<OP BUF配置-开
stcAdcCfg.enInRef = AdcMskInRefEnable; ///<内部参考电压使能-开
stcAdcCfg.enAdcAlign = AdcAlignRight; ///<转换结果对齐方式-右
Adc_Init(&stcAdcCfg);
室温下一秒读一次的数据跳动非常厉害,
ps开启了插队扫描模式,同时开启了2路,一路AD和温度通道,只有温度通道大幅抖动。 |