OpenEdv-开源电子网

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

ADC时钟设置

[复制链接]

51

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2011-4-11
在线时间
43 小时
发表于 2011-5-13 14:25:14 | 显示全部楼层 |阅读模式
RCC->CFGR&=~(3<<14);   //分频因子清零 
 //SYSCLK/DIV2=12M ADC时钟设置为12M,ADC最大时钟不能超过14M!
 //否则将导致ADC准确度下降!
 RCC->CFGR|=2<<14; 
这几句看不是很懂, RCC->CFGR&=~(3<<14);  怎么是3<<14  不是2<<14呢??
3<<14的话 好像是将HSI作为PLL输入时钟。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-5-13 14:42:18 | 显示全部楼层
回复【楼主位】Julius007:
-------------------------------
看清楚点。
3<<14  和~(3<<14  ) 不一样的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2011-4-11
在线时间
43 小时
 楼主| 发表于 2011-5-13 15:15:58 | 显示全部楼层
回复【2楼】正点原子:
-------------------------------
我知道是~(3<<14),计数手册上讲。
位16   LLSRC:PLL输入时钟源 (PLL entry clock source)  
         由软件置’1’或清’0’来选择PLL输入时钟源。只能在关闭PLL时才能写入此位。 
      0:HSI振荡器时钟经2分频后作为PLL输入时钟 
      1:HSE时钟作为PLL输入时钟。
所以我感觉16位变成0了 
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-5-13 15:20:50 | 显示全部楼层
那你没看到后面有个:RCC->CFGR|=2<<14;  ?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2011-4-11
在线时间
43 小时
 楼主| 发表于 2011-5-13 15:32:35 | 显示全部楼层
回复【4楼】正点原子:
-------------------------------
我看到了,问题是2<<14只是改变了第15 和16为的数据呀!第16位还是0呀。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-5-13 15:52:43 | 显示全部楼层
回复【5楼】Julius007:
-------------------------------
被你忽悠了。
ADC实验里面的代码,和系统时钟个鸟事啊?
系统时钟是初始化的时候就设置了的。
第十六位压根就不应该在这里设置的,在系统启动,调用 Stm32_Clock_Init 的时候就设置了!!!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2011-4-11
在线时间
43 小时
 楼主| 发表于 2011-5-13 16:01:11 | 显示全部楼层
回复【6楼】正点原子:
-------------------------------
我知道在那里设置呀!!!!!问题是你写的ADC程序里有
RCC->CFGR&=~(3<<14);   //分频因子清零 
这一句呀!!!所以我才问--为什么是~(3<<14),不是~(2<<14);
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-5-13 16:09:31 | 显示全部楼层
回复【7楼】Julius007:
-------------------------------
1<<14,是设置第14位为1.
3<<14,是设置第14,15位为1.
和16位无关。

~(3<<14)就是清除14,15之前的设置。
然后2<<14是设置 15,14的状态为10.

我看不出哪里有问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2011-4-11
在线时间
43 小时
 楼主| 发表于 2011-5-13 17:05:00 | 显示全部楼层
回复【8楼】正点原子:
-------------------------------
RCC->CFGR&=~(3<<14);   //分频因子清零 
这一句讲第16位也清0了。本来应该只要清14和15位就好了。
位16   LLSRC:PLL输入时钟源 (PLL entry clock source)   
         由软件置’1’或清’0’来选择PLL输入时钟源。只能在关闭PLL时才能写入此位。  
      0:HSI振荡器时钟经2分频后作为PLL输入时钟  
      1:HSE时钟作为PLL输入时钟。 
所以我感觉16位变成0了 

回复 支持 反对

使用道具 举报

51

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2011-4-11
在线时间
43 小时
 楼主| 发表于 2011-5-13 17:06:17 | 显示全部楼层
回复【8楼】正点原子:
-------------------------------
抱歉  我现在才看清楚!!!!实在抱歉,我看懂了。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 16:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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