OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 15223|回复: 10

军哥,关于ADC校准的一个疑问??

[复制链接]

98

主题

253

帖子

1

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2011-12-16
在线时间
59 小时
发表于 2012-1-9 20:27:38 | 显示全部楼层 |阅读模式
下面这段代码是《例说STM32》光盘里的。
  ADC1->CR2|=1<<0;     //开启AD转换器(此处也就是ADON=1 
 ADC1->CR2|=1<<3;        //使能复位校准 
 while(ADC1->CR2&1<<3);  //等待校准结束    
    //该位由软件设置并由硬件清除。在校准寄存器被初始化后该位将被清除。   
 ADC1->CR2|=1<<2;        //开启AD校准    (下面说了,校准前ADON必须为0,但上面已经设置了ADON=1
 while(ADC1->CR2&1<<2);  //等待校准结束
 //该位由软件设置以开始校准,并在校准结束时由硬件清除

说明:用库函数写的ADC也是先ADON=1后再校准。

【问题但当把第一句放在上面这段代码的最后时,ADC转换结果就是0了,也就是没转换结果了。为啥?是手册错了吗?我查了一下英文手册,跟下面说的一样。



 


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-1-9 21:57:29 | 显示全部楼层
这里确实,可能有问题.
你试试看按数据手册的写,精度是否好一点?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

98

主题

253

帖子

1

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2011-12-16
在线时间
59 小时
 楼主| 发表于 2012-1-9 22:03:27 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
按手册写的话,ADC转换结果就变成0了,明显不对。库函数也是先设置ADON=1的,如此说来,难道是手册错了?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-1-9 23:38:56 | 显示全部楼层
那就可能是了
看看e文版本看看.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

98

主题

253

帖子

1

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2011-12-16
在线时间
59 小时
 楼主| 发表于 2012-1-10 09:17:49 | 显示全部楼层
回复【4楼】正点原子:

---------------------------------
英文版也是这么写的。。。郁闷了。。。。。。。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-1-10 09:56:19 | 显示全部楼层
我测试了一下,应该是数据手册的错误.
如果设置ADCON=0,ADC就会进入掉电模式,此时就无法执行过:
while(ADC1->CR2&1<<2);  //等待校准结束
while(ADC1->CR2&1<<3);  //等待校准结束 
等语句.
所以,必须先开启ADCON.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2014-8-3
在线时间
0 小时
发表于 2014-11-28 10:08:58 | 显示全部楼层
呃,我是这样理解的。
校准之前要ADON=1,而这个ADON=1之前要至少ADON=0两个周期。
电子技能就是我行走江湖时手中的利剑。
回复 支持 反对

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-1-23 18:13:56 | 显示全部楼层
关掉延时1us再校准,结果完全是错的。
小小蜗牛
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-10-4
在线时间
0 小时
发表于 2015-10-4 18:52:12 | 显示全部楼层
中文版错了。
回复 支持 反对

使用道具 举报

18

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-11-12
在线时间
54 小时
发表于 2016-3-30 11:29:37 | 显示全部楼层
kexuexyz 发表于 2012-1-9 22:03
回复【2楼】正点原子:
---------------------------------
按手册写的话,ADC转换结果就变成0了,明显不对 ...

ADC启动转换需要ADON位被设置两次吧
回复 支持 反对

使用道具 举报

14

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2015-9-27
在线时间
27 小时
发表于 2016-5-9 17:49:06 | 显示全部楼层
中文版的参考手册不对
英文版里面是ADON = 1
QQ截图20160509174837.png
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 09:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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