描述
课程来自百问网:https://www.100ask.net
单片机时钟
时钟是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。每个时钟 tick,系统都会处理一步数据,这样才能让工作不出现紊乱。
现代计算机系统中必定有时钟;高级的单片机系统中,存在不同频率的时钟(不同的外设需要不同的时钟),高频率代表高功耗,如果系统中不需要这么高的频率,可以选择低频率时钟,如果不许要某个外设后,可以停掉其对应的时钟。
时钟产生源可以是单片机内部时钟,也可以外接晶振组件,系统中具体需要多少频率的时钟可以看单片机数据手册
时钟树(Clock tree)
STM32F103C8T6 板子时钟树,如下:
时钟树图中有以下概念
时钟源
-
HSE: 高速外部时钟(外接晶振组件)
-
HSI: 高速内部时钟(精度比 HSE 低)
-
LSI: 低速内部时钟(精度比 LSE 低)
-
LSE: 低速外部时钟
分频器
用于降低输入时钟源频率,比如 /2 代表对时钟源频率除以 2
倍频器
用于提高输入时钟源频率,比如 x2 代表对时钟源频率乘以 2
选择器
有多个输入源时,选择某一个时钟源
STM32 的 GPIO
GPIO(General-purpose input/output),通用型输入输出的简称。
-
STM32F103C8T6 一共有 48 个引脚
-
按 A、B、C 分组,每组 16 个引脚,编号为 0~15,共有 32 个 GPIO 引脚(其它的被电源、晶振、复位等占用)
-
GPIO 支持 8 中工作模式
GPIO 工作模式
输出模式
-
推挽输出(Push-Pull):使用 VDD / VSS 电源输出,将信号放大,驱动力变强
-
开漏输出(Open-Drain):关闭 VDD 输出,低电平可以通过 VSS 输出,高电平则无法通过,输出状态保持原值(一般有个 VCC 电源,此值与 VCC 一致)。
-
复用推挽输出(Alternate Function Push-Pull):非芯片控制,某外设借用芯片中的推挽输出线路对引脚输出值
-
复用开漏输出(Alternate Function Open-Drain):非芯片控制,某外设借用芯片中的开漏输出线路对引脚输出值
出入模式
-
上拉输入(Pull-up):VDD 输入,读取的是 VDD 高电压,防止误操作
-
下拉输入(Pull-down):VSS 输入,读取到的是 VSS 低电压,防止误操作
-
浮空输入(Floating Input):直接读取引脚值,此引脚悬空状态下可能会产生不稳定的点流,对整个芯片产生不确定影响
-
模拟输入(Analog mode):引脚数值直接传到外设上,通过 TTL 肖特基触发器控制
编程题
需求:点击板子上的按键控制 LED 灯亮灭
步骤
-
定义 LED GPIO 引脚,此引脚为输出,连接外接设备 LED 灯
-
定义 按键 GPIO 引脚,此引脚为输出,连接外接设备 按键
-
监听 按键 GPIO 输入值,向 LED GPIO 输出值
参考
-
https://blog.csdn.net/qq_42384937/article/details/83512162
-
https://baike.baidu.com/item/gpio/4723219?fr=aladdin
审核编辑:符乾江
打开APP阅读更多精彩内容