找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 986|回复: 4
打印 上一主题 下一主题
收起左侧

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结果
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:1085441 发表于 2023-7-21 11:28 | 只看该作者
看上去没毛病,我是先配置好寄存器,再START ADC
ADC_CONTR = ADC_CONTR | ch;
ADC_CONTR = ADC_CONTR | 8;
回复

使用道具 举报

板凳
ID:135715 发表于 2023-7-21 12:17 | 只看该作者
检查一下通道0是否为设置为模拟输入,有没有别的外设占用这个通道
回复

使用道具 举报

地板
ID:47445 发表于 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, 下载次数: 23)

51hei图片_20230721154502.jpg

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:1034262 发表于 2023-7-24 11:03 | 只看该作者
那就奇怪了,ADC只有一个,通过多路开关选择一个输入端,不可能选择某个输入端就启动不了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表