找回密码
 立即注册
查看: 157|回复: 5

求助帖:32G8K64芯片,初始化后直接读取ADC值为4096

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-09-23 11:18:54

2

主题

8

回帖

82

积分

等待验证会员

积分
82
发表于 2025-2-20 20:22:10 | 显示全部楼层 |阅读模式
代码截图:


void ADC_GPIO_Init(void)
{
        P1_MODE_IN_HIZ(GPIO_P1);                //P11 Touch_ADC置位高阻态,ADC1
        P0_MODE_IN_HIZ(GPIO_P3);                //P02 GND_ADC置位高阻态,ADC11
        P5_MODE_IN_HIZ(GPIO_P4);
        //        P11 = 0;
}
//========================================================================

void        ADC_config(void)                                                //ADC初始化
{
        ADC_InitTypeDef                ADC_InitStructure;                //结构定义
        ADC_InitStructure.ADC_SMPduty   = 15;                //ADC 模拟信号采样时间控制, 0~31(注意: SMPDUTY 一定不能设置小于 10)
        ADC_InitStructure.ADC_CsSetup   = 0;                //ADC 通道选择时间控制 0(默认),1
        ADC_InitStructure.ADC_CsHold    = 1;                //ADC 通道选择保持时间控制 0,1(默认),2,3
        ADC_InitStructure.ADC_Speed     = ADC_SPEED_2X16T;                //设置 ADC 工作时钟频率        ADC_SPEED_2X1T~ADC_SPEED_2X16T
        ADC_InitStructure.ADC_AdjResult = ADC_RIGHT_JUSTIFIED;        //ADC结果调整,        ADC_LEFT_JUSTIFIED,ADC_RIGHT_JUSTIFIED
        ADC_Inilize(&ADC_InitStructure);                        //初始化
        ADC_PowerControl(ENABLE);                                        //ADC电源开关, ENABLE或DISABLE
//        NVIC_ADC_Init(DISABLE,Priority_0);                        //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
}

使用官方ADC库函数进行初始化,直接读取P54端口(ADC2),该端口悬空。读取的值为4096 截图202502202021023540.jpg
各位大佬,是哪个地方弄错了?
截图202502202018152654.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-2-21 01:51:14 | 显示全部楼层
这是4095,不是4096
4095是12位ADC的最大值
可能是IO模式不是高阻并且输出了高电平导致的,或外部连接了VCC
打开ADC电源后,要等待1ms以上的ADC电源稳定时间
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-2-22 10:41:11 | 显示全部楼层
基准电压接了吗?
万用表测量基准电压、输入电压分别多少V?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-09-23 11:18:54

2

主题

8

回帖

82

积分

等待验证会员

积分
82
发表于 2025-2-22 16:31:37 | 显示全部楼层
梁*** 发表于 2025-2-22 10:41
基准电压接了吗?
万用表测量基准电压、输入电压分别多少V?

我知道出问题的地方了,在做GPIO初始化的时候把GPIO_Pin_1写成了,GPIO_P1  直接在初始化的时候就弄错了,谢谢~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-09-23 11:18:54

2

主题

8

回帖

82

积分

等待验证会员

积分
82
发表于 2025-2-22 16:33:45 | 显示全部楼层
Debu*** 发表于 2025-2-21 01:51
这是4095,不是4096
4095是12位ADC的最大值
可能是IO模式不是高阻并且输出了高电平导致的,或外部连接了VCC ...

多谢指正,我是在IO初始化的时候粗心写错了,将 GPIO_Pin_1  写为  GPIO_P1,检查的时候不容易发现
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-04-07 16:51:18
已绑定手机

5

主题

17

回帖

117

积分

注册会员

积分
117
发表于 2025-2-25 19:53:55 | 显示全部楼层
我也碰到了跟你一样的问题,不管量什么电压,ADC读取的值要么0,要么就是10位的最大值1024
你解决了吗?
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:32 , Processed in 0.260735 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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