打印
[STM8]

151k4 ADC读入错误

[复制链接]
584|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
juventus9554|  楼主 | 2019-7-7 21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟遇到一个问题:STM8L 151K4T6的芯片,使用ADC读取电压数据时,总是不成功,现象是这样的,
无论在哪个位置(1--2.5V之间)读出的数据都是 0x04f0(上下几个bLs浮动)

使用特权

评论回复
沙发
yinxiangh| | 2019-7-7 21:36 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
juventus9554|  楼主 | 2019-7-7 21:39 | 只看该作者

void  ADC_Init ()               //ADC单元模块初始化
{
   CLK_PCKENR2 = 0x23;         //COMP1/COMP2、TIM1、ADC1时钟
   ADC1_CR1 = 0x00;             //单次转换,禁止中断、模拟看门狗,12位分辨率,关闭转换开关。
   ADC1_CR2 = 0x00;             //禁止外触发,ADC时钟为CPU时钟,采样时间4个ADC周期

   ADC1_SR  = 0x00;             //将标志位清0,这里只使用EOC(转换结束位)   
   ADC1_SQR1= 0x80;             //禁用DMA
   ADC1_SQR2= 0x00;  
   ADC1_SQR3= 0x00;
   ADC1_TRIGR4 = 0x07;          //0、1、2通道施密特禁用。  
   GPIO_init ( );        //引脚初始化函数,定义各引脚,PA5 引脚设置为悬浮输入。  
}  

Uint number=0;
     ADC1_SR  = 0x00;                    //将标志位清0,
     ADC1_SQR4 = 0x02;                  //选择目标通道AIN1 (PA5)
     ADC1_CR1_ADON = 1;                  //ADON置1,唤醒ADC
     Delay_Ms(10);
     ADC1_CR1_START = 1;                 //START置1,开始数据转换
     while(ADC1_SR_EOC == 0);           //当EOC(ADC1_SR的0位) 变为1时,停止等待  
     ADC1_CR1_ADON = 0;
     ADC1_SR_EOC = 0;             //将转换结束位清0,
     number |= (ADC1_DRH << 8);
     number |=  ADC1_DRL;

使用特权

评论回复
地板
houcs| | 2019-7-7 21:42 | 只看该作者
ADC转换过程是正常的吗

使用特权

评论回复
5
juventus9554|  楼主 | 2019-7-7 21:45 | 只看该作者
正常的,就是不知道它从哪里取得的数据

使用特权

评论回复
6
yinxiangh| | 2019-7-7 21:49 | 只看该作者
更换多个输入通道

使用特权

评论回复
7
pengf| | 2019-7-7 21:53 | 只看该作者
对,转换结果是一样吗?

使用特权

评论回复
8
sky.sun.zz| | 2019-7-7 21:58 | 只看该作者
juventus9554 发表于 2019-7-7 21:39
void  ADC_Init ()               //ADC单元模块初始化
{
   CLK_PCKENR2 = 0x23;         //COMP1/COMP2 ...


读ADC转换结果必须先读低位,后读高位

使用特权

评论回复
9
juventus9554|  楼主 | 2019-7-13 12:50 | 只看该作者
转换结果是一样的(包括悬空和接地的引脚)

使用特权

评论回复
10
juventus9554|  楼主 | 2019-7-13 12:53 | 只看该作者
原因找到,是这个片子读入的第一个数据是错误的,每次连读两次,丢弃第一个,取第二个就正常了,只是还不稳定。

使用特权

评论回复
11
xxmmi| | 2019-7-13 13:00 | 只看该作者

呵呵,解决了就好啊,很有效率的嘛

使用特权

评论回复
12
juventus9554|  楼主 | 2019-7-13 13:03 | 只看该作者

结贴了,多谢大家讨论这么多哈,呵呵

使用特权

评论回复
13
labasi| | 2019-8-6 11:54 | 只看该作者
直接接地试试看读到的是多少

使用特权

评论回复
14
paotangsan| | 2019-8-6 11:58 | 只看该作者
别波动了 就接到一个固定值上看看

使用特权

评论回复
15
renzheshengui| | 2019-8-6 12:08 | 只看该作者
电压基准是什么

使用特权

评论回复
16
wakayi| | 2019-8-6 12:12 | 只看该作者
读取的是哪个数据存储器的啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

900

主题

12190

帖子

3

粉丝