你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于stm外部时钟引脚是否需要开时钟

[复制链接]
七尺大儒 提问时间:2018-4-6 12:04 /
在使用stm32f103的时候,突然有一个疑问。如果采用外部晶振,那么外部晶振需要接pd0和pd1两个引脚,那么问题来了,我们的程序中到底需不需开启gpiod的时钟。在stm32cubemx生成的代码中默认开启gpiod的时钟,但是在自己使用寄存器编程的时候,没有对gpiod时钟使能。这是我之前错了,还是stm32cubemx的一个bug。
收藏 评论3 发布时间:2018-4-6 12:04

举报

3个回答
feixiang20 回答时间:2018-4-8 03:02:53
STM32启动时默认为内部RC震荡所以在使用的时候,首先要对时钟进行初始化等待外部晶振稳定后然后才对外部晶振进行分频或者倍频最后才是对APB总线时钟及模块时钟进行配置。无论是外部还是内部时钟,都会经过分频或倍频最后得到外设的时钟,这样外设才能正常运行。而打开时钟就是允许接收分频后的频率。可以去参考STM32学习笔记——OLED屏的文章。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

七哥 回答时间:2018-4-6 23:03:51
本帖最后由 toofree 于 2018-4-6 23:04 编辑

__HAL_RCC_GPIOD_CLK_ENABLE();
这条不用理会,不需要开时钟。
有可能是用了外部时钟,在STM32CubeMX下PD0、PD1管脚变绿了,它自作聪明给你开启GPIOD时钟的。
傲游截图20180406225809.jpg

实际上这两个管脚主功能是OSC_IN、OSC_OUT。什么是主功能,就是人家本身就是作为时钟功能用的,跟GPIO没半毛钱关系。只是由于管脚少,留了一手,在外部时钟功能不用的情况,这两个管脚可以用作PD0、PD1。
跟JTAG口是一个道理,JTAG口的管脚也可以用作GPIO,但主功能是JTAG,JTAG连接的时候,没有人会认为开启了GPIO的时钟吧。
傲游截图20180406225539.jpg


傲游截图20180406225623.jpg


傲游截图20180406225701.jpg


傲游截图20180406225721.jpg



评分

参与人数 2ST金币 +2 蝴蝶豆 +3 收起 理由
zero99 + 3
MrJiu + 2 很给力!

查看全部评分

wudianjun2001 回答时间:2018-4-7 08:23:39
你这两个引脚做IO口用的话肯定是要开时钟的,不用的话开了也不会有影响的

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版