当前位置: 代码迷 >> 单片机 >> STC内置ad转换有关问题
  详细解决方案

STC内置ad转换有关问题

热度:179   发布时间:2016-04-28 16:26:23.0
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
  相关解决方案