STC单片机AD转换不了

2025-02-24 14:56:28
推荐回答(4个)
回答1:

/*----------------------------
初始化ADC
----------------------------*/
void InitADC()
{
P1ASF = 0xff; //设置P1口为AD口
ADC_RES = 0; //清除结果寄存器
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
Delay(2); //ADC上电并延时
}

/*----------------------------
读取ADC结果
----------------------------*/
BYTE GetADCResult(BYTE ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
_nop_(); //等待4个NOP
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成
ADC_CONTR &= ~ADC_FLAG; //Close ADC

return ADC_RES; //返回ADC结果
}
这是STC官方参考资料,自己参考一下

回答2:

看着没什么问题嘛,会不会没有把IO设置成 AD口呢

回答3:

关注这个问题

回答4:

目前这些没有问题,程序其他部分呢
有没有设置P1ASF