第三节:时钟与GPIO(黄老师)

一、单片机时钟

特点1: 现代计算机系统中必定有时钟,时钟的本质是同步,为了让单片机内部的器件能够同步运行。

特点2: 高级的单片机系统中,存在不同频率的时钟,因为高级的系统中时钟的频率一般是比较高的,而单片机的有些功能并不需要如此高的执行速度,为了最优化,采取多个不同频率时钟存在的方式。

二、STM32时钟树

上一节在使用CubeMX的时候,只是简单的对GPIO口进行配置,实际上还需要根据STM32的时钟树对时钟进行配置。
STM32时钟树
上图是STM32时钟树的详细图。有几个点需要注意:
在这里插入图片描述
可以看到HSE在图上连接到OSC_OUT和OSC_IN,即芯片的对应两个引脚,并将通过这两个引脚连接到外部的时钟源。
而像HSI、LSI这些内部时钟,并不需要外接晶振等时钟源,使用它们的成本会比较低,但是有个缺点是精度较差,由于处于芯片内部,在芯片运行时发热等情况都会使时钟的精度变差。
同时我们也注意到,芯片的时钟分为高速和低速,这也是第一段里提到的,最优化,简单理解就是,高速时钟是提供给CPU这种需要高速处理的部分,而低速主要是用于看门狗、RTC等要求不那么高的部分。
像上面提到的STM32时钟树,在我们利用CubeMX进行创建工程时也是可以设置的。点击Clock Configuration即可进入下面的界面。
在这里插入图片描述
可以看到,HSE与LSE的左侧都通过引脚连接到外部的晶振,但是外部晶振的配置却是暗的,修改不了数值。我们需要在引脚配置里的System core选择RCC,并根据开发板原理图上将HSE的时钟选择为陶瓷时钟源。而LSE则不需要配置,因为开发板上没有连接。
在这里插入图片描述
注:选择陶瓷时钟源(Crystal/Ceramic Resonator)是因为开发板上连接的晶振是双向的,连接经过OSC_IN和OSC_OUT的,而如果开发板上选择的外部时钟源是直接单向输入到开发板上的,则选择旁路时钟源(BYPASS clock source)。

修改成功后,我们就可以进行相关配置了。
在这里插入图片描述
输入开发板原理图上实际的晶振大小,就可以配置后面的时钟树情况了。同时我们注意到,使用内部时钟最高频率只能达到64MHz,而外部时钟则可以到达最高的72MHz。
在这里插入图片描述
总结:在时钟树里,左边配置的主要是晶振的分频、倍频,以及选择,而右边则是总线时钟的来源以及分配。对于右边部分,可以从下图看到,实际上外设的时钟源和总线有关
在这里插入图片描述

三、GPIO

下图是STM32GPIO口的基本介绍。
在这里插入图片描述
GPIO口的内部原理图如下:
在这里插入图片描述
8种工作模式的详细工作方式我现在还不太清楚,等我回去再复习一下数电模电的知识,再来总结一下。

GPIO口在CubeMX里也可以进行配置。
在这里插入图片描述
其中以输出为例
output level是GPIO口上电后的默认状态;
mode则是选择为推挽/开漏输出;
speed是GPIO口驱动电路的速度,速度越高消耗的功率越大;
User Label则是自定义名字。

对于模式的选择,我们正常选择推挽即可,在电平转换,或者上图中的外接Vcc来提供电流,增加驱动能力时,选择为开漏

四、按键输入

下面介绍一下GPIO读取输入的典型应用之按键输入。
开发板的按键原理图如下:
在这里插入图片描述
其中电容C15是旁路电容,用来滤波的。忽略之后得到电路图如下:
在这里插入图片描述
电阻属于外部上拉电阻,没按按键时,PA0口与3.3V是线与关系,高电平,按下按键后,接地了,则PA0口是低电平。

消抖
在这里插入图片描述
与我在51单片机里的内容一致,按键需要消抖。分为硬件消抖和软件消抖。
硬件消抖是通过旁路电容,将前沿抖动的尖刺变得平稳,但是仍可能出现抖动情况。所以最好还是要加上软件延时,进行消抖。
在CubeMX的GPIO口配置中,不需要选择上拉状态,因为电路中已经外接上拉电阻了。
在这里插入图片描述
注:最近两篇文章都是采用CSDN的MD编辑器,修改字体颜色我感觉比原来的麻烦,有些快捷键的输入是比较方便,我感觉对我最有帮助的是代码片,可以清晰的表明我想写的代码,这个功能我在原来的是找不到的。只能说有好有坏吧。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值