STC内置ad转换问题
我的STC 内置的AD里面,ADC_FLAG是置1了,但是我用串口发送出去的数据总是FF,不知道为什么,哪怕我的电压只有2V,困惑不解啊.
[解决办法]
FF 说明你的AD采集是满量程的,2V也满量程显然是你的ADC设置正确。ADC_FLAG 置1 说明ADC中断有效,但不见得就是正确的值了。
[解决办法]
应该调试一下,看AD采集那出问题了,还是串口发送出问题了
[解决办法]
先好好核实下程序,
是否拟对应IO配置成ADC 有问题,
或者你处理ADC转换后的数值有问题,
当然也可能是硬件有问题,
建议先在网上下载一个实验程序,测试下你的单板等硬件,
[解决办法]
我也在用STC的ADC,大家交流一下.
ADC_CONTR=0xe0; //打开ADC,设最快的速度
AUXR |= 0x10;//设置EADCI位为1,允许ADC中断
EADC_SPI=1;//允许ADC与SPI中断
EA=1;//开所有中断
请确定这些中断有打开.
ADC_CONTR |= 0x08;//启动ADC
读值时也要看8个channel有没有设对
void ADCInt(void) interrupt 5
{
ADC_CONTR &= 0xef;//清中断标志位
a_u2ADCRxBuf[0] = ((ADC_DATA<<2)+ADC_LOW2); //这样读入ADC值
}
我就是这样,可以读到ADC值的了.10位的,我用的是STC12LE5412AD