找回密码
 立即注册
查看: 370|回复: 9

STC8G1K08A8pin的芯片,这种没有verf的该怎么接线 | 已解决

[复制链接]
  • TA的每日心情
    奋斗
    2023-12-20 09:12
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    46

    积分

    新手上路

    积分
    46
    发表于 2023-12-19 18:02:39 | 显示全部楼层 |阅读模式
    我用STC8G1K08A8pin的芯片,想用P3.2口作为ADC的端口,我的代码已经将P3.2作为高阻输入,并且按照案例做了时钟的配置和启动。结果ADC_FLAG 一直不跳,程序卡主了。。。

    这是我的ADC代码
    """C

    #include "adc.h"
    #include "serial.h"

    #include "intrins.h"
    void init_port(void){
            P3M0 &= ~0x04;
            P3M1 |= 0x04;
    }

    void init_adc(void){
            init_port();
            
            delay_ms(1);
            //设置采样时钟
            P_SW2 |= 0x80;
            ADCTIM = 0x3f; //设置 ADC 内部时序
            P_SW2 &= 0x7f;
            ADCCFG = 0x0f;
            //打开电源
            ADC_CONTR &= 0x80;                 
    }
    void start_adc(void) {
            ADC_CONTR |= 0x42;        //0010
            _nop_();
            _nop_();
    }

    u8 get_adc_n() {
            while(!(ADC_CONTR & 0x20));
    //        uart_send_str("have adc number\r\n");

            ADC_CONTR &= ~0x20;
            return ADC_RES;
    }

    void close_adc(void){
            ADC_CONTR &= 0x7f;
    }

    """
    我想问问是我的代码问题还是接线问题
    回复 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9317

    回帖

    1万

    积分

    管理员

    积分
    13896
    发表于 2023-12-19 18:55:43 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9317

    回帖

    1万

    积分

    管理员

    积分
    13896
    发表于 2023-12-19 19:09:56 | 显示全部楼层
    截图202312191909125664.jpg

    PIN4, GND/AGnd,  就是 ADC的模拟地
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-20 09:12
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    46

    积分

    新手上路

    积分
    46
     楼主| 发表于 2023-12-19 19:23:11 | 显示全部楼层
    本帖最后由 小鸟肥肥 于 2023-12-19 19:26 编辑
    神农鼎 发表于 2023-12-19 19:09
    PIN4, GND/AGnd,  就是 ADC的模拟地

    可是我是的实物连接图里带了个滑动变阻器,然后我用万用表测了电压是没有问题的,接地也是用的GND,而且ADC_FLAG一直检测不结束,导致程序卡主了

    点评

    ADC_FLAG一直检测不结束,只有两种可能: 1、你用的MCU没有ADC功能(比如用了STC8G1K08-8PIN没有ADC)。 2、没有开启ADC电源。 ADC模块是一个纯硬件的外设,只要初始化正确,一旦启动,必然会结束。  详情 回复 发表于 2023-12-19 22:32
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9317

    回帖

    1万

    积分

    管理员

    积分
    13896
    发表于 2023-12-19 19:49:18 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2934

    回帖

    6617

    积分

    超级版主

    积分
    6617
    发表于 2023-12-19 22:32:48 | 显示全部楼层
    小鸟肥肥 发表于 2023-12-19 19:23
    可是我是的实物连接图里带了个滑动变阻器,然后我用万用表测了电压是没有问题的,接地也是用的GND,而且AD ...

    ADC_FLAG一直检测不结束,只有两种可能:
    1、你用的MCU没有ADC功能(比如用了STC8G1K08-8PIN没有ADC)。
    2、没有开启ADC电源。

    ADC模块是一个纯硬件的外设,只要初始化正确,一旦启动,必然会结束。
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-20 09:12
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    46

    积分

    新手上路

    积分
    46
     楼主| 发表于 2023-12-20 08:18:13 | 显示全部楼层
    梁工 发表于 2023-12-19 22:32
    ADC_FLAG一直检测不结束,只有两种可能:
    1、你用的MCU没有ADC功能(比如用了STC8G1K08-8PIN没有ADC)。
    ...

    感谢梁工,问题找到了,是没有开启ADC电源,是代码写错了,ADC开启电源的时候用了&=,导致一直没开启电源
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-20 09:12
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    46

    积分

    新手上路

    积分
    46
     楼主| 发表于 2023-12-20 08:18:45 | 显示全部楼层
    感谢回复问题的各位,问题找到了
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9317

    回帖

    1万

    积分

    管理员

    积分
    13896
    发表于 2023-12-20 11:14:28 | 显示全部楼层
    还是建议,用仿真来调试,查找问题更直观
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    8 小时前
  • 签到天数: 143 天

    [LV.7]常住居民III

    3

    主题

    50

    回帖

    747

    积分

    高级会员

    积分
    747
    发表于 2024-4-22 11:11:35 | 显示全部楼层
    金天又加了一次客服,这次通过了,以个人名义申请了一个 STC-USB Link1D ,学习一个仿真怎么玩,之前每次都是打板回来焊好测试,有问题在打板,比较费时费钱,喜望通过仿真能改善一下,少打板子
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-5 09:05 , Processed in 0.070149 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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