OpenEdv-开源电子网

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

关于stm32使用外部晶振和内部rc振荡器的疑问

[复制链接]

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-10 15:39:39 | 显示全部楼层 |阅读模式
5金钱
今天发现自己的项目里一直都在用内部rc作为震荡源,485居然神奇地没有出问题......
因为之前mcu是f103c8t6,选择移植到f070cbt6上了,程序的时钟又是在system_stm32fxxxx.c里面配置的,所以改成f0之后有点不一样,里面的寄存器配置我也看不懂......
然后我现在在主程序里加了一句RCC_HSEConfig(RCC_HSE_ON);
外部晶振是使能了,有震荡波形,但是不知道板子有没有把它作为震荡源...........请问各位大虾我这样是否已经使用了外部晶振,,,还是说得加几句句子,之前一直对晶振这块不了解!
望各位大虾给出小弟意见!

最佳答案

查看完整内容[请看2#楼]

如何确定用外部晶振还是内部RC晶振,很简单短路晶振两个脚,如果程序不跑了,说明是用的外部晶振。否则就不是。
猪猪熊呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-8-10 15:39:40 | 显示全部楼层
如何确定用外部晶振还是内部RC晶振,很简单短路晶振两个脚,如果程序不跑了,说明是用的外部晶振。否则就不是。
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
 楼主| 发表于 2018-8-10 15:58:35 | 显示全部楼层
刚刚在程序里加了RCC_HSICmd(DISABLE);把内部rc振荡器关闭了..程序正常运行,485正常运行,应该是正常使用了外部晶振了吧
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
 楼主| 发表于 2018-8-10 16:25:37 | 显示全部楼层
来来来  有没有大神
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
 楼主| 发表于 2018-8-10 16:51:33 | 显示全部楼层
顺带一提我的外部晶振和hsi一样都是8MHZ
猪猪熊呢?
回复

使用道具 举报

0

主题

28

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1013
金钱
1013
注册时间
2017-8-8
在线时间
67 小时
发表于 2018-8-11 09:49:23 | 显示全部楼层
学习下!
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
 楼主| 发表于 2018-8-11 10:17:24 | 显示全部楼层
正点原子 发表于 2018-8-11 02:18
如何确定用外部晶振还是内部RC晶振,很简单短路晶振两个脚,如果程序不跑了,说明是用的外部晶振。否则就不 ...

原子哥说的有道理!不过我把外部晶振短接了,发现程序仍然运行!后来发现是32会在无外部晶振的情况下自动切换至HSI,就像没有配置RCC时,默认使用HSI一样......我现在才发现485通信的速率HSI和HSE完全不一样.....HSE快了好几个档次,跟的上自己的手速
猪猪熊呢?
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-8-11 11:09:16 | 显示全部楼层
看你们这个费劲。
可定义u32 RccCR, RccCFGR;
初始化完成后,
RccCR=RCC->CR;  
RccCFGR=RCC->CFGR;
然后如果打印可用:
printf("RCC->CR=%08X",RccCR);   
printf("RCC->CFGR=%08X",RccCFGR);     
或者直接仿真看变量或寄存器的值。
当然,不定义变量,直接使用寄存器也可以。

然后对照寄存器的标志位,看外部时钟、PLL等标志、分频设置等参数,一目也然。
不会看的话,你把值告诉我。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-8-11 11:10:12 | 显示全部楼层
本帖最后由 warship 于 2018-8-11 11:13 编辑

直接用watch也可以看到
http://www.openedv.com/data/atta ... e19ehn89uq8hny6.png
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
 楼主| 发表于 2018-8-11 11:19:42 | 显示全部楼层
warship 发表于 2018-8-11 11:09
看你们这个费劲。
可定义u32 RccCR, RccCFGR;
初始化完成后,

哦  大神
猪猪熊呢?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 18:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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