标题: STC15W4K32S4单片机ADC怪现象调试 [打印本页]

作者: jl48q    时间: 2023-7-21 07:29
标题: STC15W4K32S4单片机ADC怪现象调试
各位大侠,STC15W4K32S4 ADC出现怪现象,ADC0无法启动转换,其他ADC1~ADC7都没问题,不知是程序哪里没设置对,望大侠赐教


uchar AD(uchar n)
{
    ADC_CONTR = 0x88|n;        // 0x88+n;
    _nop_();                        //等待4个NOP
    _nop_();
    _nop_();
    _nop_();
    while (!(ADC_CONTR & 0x10));//等待ADC转换完成
    ADC_CONTR &= ~0x10;         //Close ADC

    return ADC_RES;                 //返回ADC结果
}


作者: cnfloatleaf    时间: 2023-7-21 11:28
看上去没毛病,我是先配置好寄存器,再START ADC
ADC_CONTR = ADC_CONTR | ch;
ADC_CONTR = ADC_CONTR | 8;

作者: 760656130    时间: 2023-7-21 12:17
检查一下通道0是否为设置为模拟输入,有没有别的外设占用这个通道
作者: jl48q    时间: 2023-7-21 15:36
问题解决了,还是要仔细读厂家给的资料啊!
STC15W4K32S4一定要初始化ADC,STC12、STC8都不需要

void InitADC()//初始化
{
    P1ASF = 0x63;                   //设置P10 11 15 16口为AD口 其他为普通IO
    ADC_RES = 0;                    //清除结果寄存器
    ADC_CONTR = 0x80| 0x00;
    delay(2);                       //ADC上电并延时
}
原来用的是STC8G单片机,但是这款芯片比较容易被干扰,现在换用比他贵2圆的STC15W试试看,管脚都一样以为换上稍微调整一下就能使用,没想到ADC上卡了俺一天的时间

51hei图片_20230721154502.jpg (1.47 MB, 下载次数: 53)

51hei图片_20230721154502.jpg

作者: coody_sz    时间: 2023-7-24 11:03
那就奇怪了,ADC只有一个,通过多路开关选择一个输入端,不可能选择某个输入端就启动不了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1