找回密码
 立即注册
查看: 256|回复: 8

8h3k32s2 adc采集

[复制链接]
已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-18 14:49:18 | 显示全部楼层 |阅读模式
各位大神求助个问题,用主控芯片8h3k32s2的adc采集电压,供电是3.3v,0v时采集出来原始值为3426,3.3v采集出来原始值为3596,很小的变化这是为什么,求解答一下谢谢

程序是这样的

void        ADC_config(void)
{        
        ADC_CONTR|=0x80;              //开AD转换电源
        delay_ms(10);           //适当延时等待AD转换供电稳定
        ADC_CONTR|=0x0A;                          //选择P0.4作为模拟功能AD使用
        ADC_CONTR&=0xFA;                          //选择P0.4作为模拟功能AD使用
        
        ADCCFG&=0xFC;             //AD转换速度为416个时钟数转换一次
        ADCCFG|=0x0C;             //AD转换速度为416个时钟数转换一次
        ADC_CONTR&=0xDF;          //清AD转换完成标志
               
        EADC=0;                   //禁止ADC转换中断
        ADCCFG|=0x20;             //ADC转换结果ADC_RES存高4位,ADC_RESL存低8位
        ADC_CONTR|=0x40;          //启动AD转换,ADC_START=1
}

/**************************************
功能描述:ADC口检测AD转换值函数
入口参数:无
返回值:ADC 12位数据
***************************************/
uint16        Get_ADC12bitResult(void)        
{
        uint16        AD_Dat=0;
  ADC_CONTR&=0xDF;              // 将ADC_FLAG清0
        ADC_CONTR&=0xBF;        //关闭AD转换,ADC_START=0
        //12位AD结果的高4位放ADC_RES的低4位,低8位在ADC_RESL
        AD_Dat = ADC_RES;                       //将ADC_RES低4位移到应在的第9位至第12位
        AD_Dat <<= 8;
        AD_Dat|= ADC_RESL;               //将ADC_RESL的8位移到应在的低8位
        
  ADC_CONTR|=0x40;           //启动AD转换,ADC_START=1
        return        AD_Dat;        
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-2-18 14:53:59 | 显示全部楼层
采集ADC的时候需要将对应的IO口设置为高阻输入,否则其他的模式下,IO口同时在输出,就会对导致采样数据不正确
回复 支持 反对

使用道具 举报 送花

已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-18 14:56:41 | 显示全部楼层
王*** 发表于 2025-2-18 14:53
采集ADC的时候需要将对应的IO口设置为高阻输入,否则其他的模式下,IO口同时在输出,就会对导致采样数据不 ...

设置了用的p1.1
        GPIO_InitStructure.Pin  = GPIO_Pin_1;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7
        GPIO_InitStructure.Mode = GPIO_HighZ;                //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
        GPIO_Inilize(GPIO_P1,&GPIO_InitStructure);        //初始化

点评

原因是因为你设置ADC通道的时候设置为10通道了,数据手册查询,对应的是P0.2端口。 可以尝试将ADC的配置函数和查询函数更改为官方的示例部分,原函数有许多问题。  详情 回复 发表于 2025-2-18 15:04
回复 支持 反对

使用道具 举报 送花

已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-18 15:00:51 | 显示全部楼层
王*** 发表于 2025-2-18 14:53
采集ADC的时候需要将对应的IO口设置为高阻输入,否则其他的模式下,IO口同时在输出,就会对导致采样数据不 ...

能看看上述原理图中有没有错误吗其中的avcc和agnd要接吗
1962307a-7499-42fd-8858-7e5c2b343c21.png

点评

AVCC与AGND没有连接,则ADC相关的模拟电路没有电源,所以异常。 请链接AGND与GND链接,AVCC与VCC链接,即可正常。  详情 回复 发表于 2025-2-22 21:10
是需要接的,具体详见手册说明: [attachimg]85151[/attachimg]  详情 回复 发表于 2025-2-18 15:06
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-2-18 15:04:52 | 显示全部楼层
mcxh*** 发表于 2025-2-18 14:56
设置了用的p1.1
        GPIO_InitStructure.Pin  = GPIO_Pin_1;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7 ...

原因是因为你设置ADC通道的时候设置为10通道了,数据手册查询,对应的是P0.2端口。
可以尝试将ADC的配置函数和查询函数更改为官方的示例部分,原函数有许多问题。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-2-18 15:06:52 | 显示全部楼层
mcxh*** 发表于 2025-2-18 15:00
能看看上述原理图中有没有错误吗其中的avcc和agnd要接吗

是需要接的,具体详见手册说明:

截图202502181506475968.jpg

回复 支持 反对

使用道具 举报 送花

已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-18 15:06:57 | 显示全部楼层
王*** 发表于 2025-2-18 15:04
原因是因为你设置ADC通道的时候设置为10通道了,数据手册查询,对应的是P0.2端口。
可以尝试将ADC的配置 ...

好的感谢
回复 支持 反对

使用道具 举报 送花

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

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-2-18 18:47:27 | 显示全部楼层
DebugLab
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-2-22 21:10:43 | 显示全部楼层
mcxh*** 发表于 2025-2-18 15:00
能看看上述原理图中有没有错误吗其中的avcc和agnd要接吗

AVCC与AGND没有连接,则ADC相关的模拟电路没有电源,所以异常。
请链接AGND与GND链接,AVCC与VCC链接,即可正常。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:49 , Processed in 0.132977 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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