找回密码
 立即注册
楼主: jhjkdz

STC8G1K08A 用P55 ADC采集数据问题

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-12-14 15:04:14
已绑定手机

7

主题

22

回帖

113

积分

注册会员

积分
113
发表于 3 天前 | 显示全部楼层
Debu*** 发表于 2025-12-14 11:20
数据超出范围可能是对齐格式设置错误

// adc 初始化

void ADC_Init(void)
{   
                P_SW2 |= 0x80;         //打开
                ADCTIM = 0x3f;         //设置 ADC 内部时序
                P_SW2 &= 0x7f;         //关闭
                ADCCFG = 0x27;         //设置ADC结果右对齐,设置速度时钟
                ADC_RES=0;             //清除ADC_RES存储器以前的结果
                ADC_RESL=0;
                ADC_CONTR |= 0x80; //ADC 开启电源
                Delay_Ms(10);          //上电延时
}


//    读取ADC结果

u16 GetADCResult()
{
          ADC_CONTR = 0xC5 ;                      //启动转换选择通道    1100 0101(C5)P55脚   1100 1111(CF)  内部1.19V
                _nop_();
          _nop_();                                //小延时
                while (!(ADC_CONTR & ADC_FLAG));        //等待ADC转换完成标志置位 1010 0000
                ADC_CONTR &=~0x20;                      //清完成标志
                return ADC_RES << 8 | ADC_RESL;         //返回十位ADC结果
               
}
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-12-14 15:04:14
已绑定手机

7

主题

22

回帖

113

积分

注册会员

积分
113
发表于 3 天前 | 显示全部楼层
Debu*** 发表于 2025-12-14 11:20
数据超出范围可能是对齐格式设置错误

谢谢!
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-12-14 15:04:14
已绑定手机

7

主题

22

回帖

113

积分

注册会员

积分
113
发表于 3 天前 | 显示全部楼层
lcws*** 发表于 2025-12-14 08:44
检查ADC初始化代码,看是左对齐还是右对齐。
检查ADC获取结果的代码,看有没有移位、乘系数的处理。 ...

谢谢!
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-12-14 15:04:14
已绑定手机

7

主题

22

回帖

113

积分

注册会员

积分
113
发表于 3 天前 | 显示全部楼层
jhj*** 发表于 2025-12-14 15:04
// adc 初始化

void ADC_Init(void)

//    读取ADC结果

u16 GetADCResult()
{
                u16 ADC1 = 0;
       
          ADC_CONTR = 0xC5 ;                      //启动转换选择通道    1100 0101(C5)P55脚   1100 1111(CF)  内部1.19V
                _nop_();
          _nop_();                                //小延时
                while (!(ADC_CONTR & ADC_FLAG));        //等待ADC转换完成标志置位 1010 0000
                ADC_CONTR &=~0x20;                      //清完成标志
                ADC_RESL = ADC_RESL & 0xC0;             //读取低字节2位
                ADC1 = (ADC_RES << 2) | ADC_RESL >> 6;    //                                                               
                return ADC1;                            //返回十位ADC结果
               
}
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-12-14 15:04:14
已绑定手机

7

主题

22

回帖

113

积分

注册会员

积分
113
发表于 3 天前 | 显示全部楼层
jhj*** 发表于 2025-12-14 19:36
//    读取ADC结果

u16 GetADCResult()

是这个问题
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-12-14 15:04:14
已绑定手机

7

主题

22

回帖

113

积分

注册会员

积分
113
发表于 3 天前 | 显示全部楼层
初始化的问题
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-12-17 12:59 , Processed in 0.111101 second(s), 67 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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