STC32G12K128读取ADC会使信号异常上升!!!
使用STC32G12K128读取ADC电压信号时,信号会上升;但是我关闭读取时,信号是正常的,该怎样解决这个问题
ADC模块是这样配置的
- //========================================================================
- // 函数: ADC_config
- // 描述: ADC配置函数.
- // 参数: none.
- // 返回: none.
- //========================================================================
- void Adc_config(void)
- {
- ADCTIM = 0x31; //设置 ADC 内部时序,ADC采样时间建议设最大值
- ADCCFG = 0x23; //设置 ADC 时钟为系统时钟/2/4
- ADC_CONTR = 0x80; //使能 ADC 模块
- EADC = 0; //AD中断关闭
- }
-
- //========================================================================
- // 函数: ADC_GetConversion
- // 描述: AD转换函数,读取固定通道AD值
- // 参数: none.
- // 返回: AD转换结果.
- //========================================================================
- uint16_t ADC_GetConversion(int channel)
- {
- ADC_RES = 0;
- ADC_RESL = 0;
-
- ADC_CONTR = (ADC_CONTR & 0xf0) | channel; //设置ADC转换通道
- ADC_START = 1;//启动ADC转换
- _nop_();
- _nop_();
- _nop_();
- _nop_();
-
- while(ADC_FLAG == 0); //wait for ADC finish
- ADC_FLAG = 0; //清除ADC结束标志
- return (((u16)ADC_RES << 8) | ADC_RESL);
- }
复制代码
|