七天物联网智能家居实战学习笔记(三)

今日头条

1142人已加入

描述

课程来自百问网:https://www.100ask.net

单片机时钟

时钟是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。每个时钟 tick,系统都会处理一步数据,这样才能让工作不出现紊乱。

现代计算机系统中必定有时钟;高级的单片机系统中,存在不同频率的时钟(不同的外设需要不同的时钟),高频率代表高功耗,如果系统中不需要这么高的频率,可以选择低频率时钟,如果不许要某个外设后,可以停掉其对应的时钟。

时钟产生源可以是单片机内部时钟,也可以外接晶振组件,系统中具体需要多少频率的时钟可以看单片机数据手册

时钟树(Clock tree)

STM32F103C8T6 板子时钟树,如下:

单片机

时钟树图中有以下概念

时钟源

  1. HSE: 高速外部时钟(外接晶振组件)
  2. HSI: 高速内部时钟(精度比 HSE 低)
  3. LSI: 低速内部时钟(精度比 LSE 低)
  4. LSE: 低速外部时钟

分频器

用于降低输入时钟源频率,比如 /2 代表对时钟源频率除以 2

倍频器

用于提高输入时钟源频率,比如 x2 代表对时钟源频率乘以 2

选择器

有多个输入源时,选择某一个时钟源

STM32 的 GPIO

GPIO(General-purpose input/output),通用型输入输出的简称。

  1. STM32F103C8T6 一共有 48 个引脚
  2. 按 A、B、C 分组,每组 16 个引脚,编号为 0~15,共有 32 个 GPIO 引脚(其它的被电源、晶振、复位等占用)
  3. GPIO 支持 8 中工作模式

GPIO 工作模式

单片机

输出模式

  1. 推挽输出(Push-Pull):使用 VDD / VSS 电源输出,将信号放大,驱动力变强
  2. 开漏输出(Open-Drain):关闭 VDD 输出,低电平可以通过 VSS 输出,高电平则无法通过,输出状态保持原值(一般有个 VCC 电源,此值与 VCC 一致)。
  3. 复用推挽输出(Alternate Function Push-Pull):非芯片控制,某外设借用芯片中的推挽输出线路对引脚输出值
  4. 复用开漏输出(Alternate Function Open-Drain):非芯片控制,某外设借用芯片中的开漏输出线路对引脚输出值

出入模式

  1. 上拉输入(Pull-up):VDD 输入,读取的是 VDD 高电压,防止误操作
  2. 下拉输入(Pull-down):VSS 输入,读取到的是 VSS 低电压,防止误操作
  3. 浮空输入(Floating Input):直接读取引脚值,此引脚悬空状态下可能会产生不稳定的点流,对整个芯片产生不确定影响
  4. 模拟输入(Analog mode):引脚数值直接传到外设上,通过 TTL 肖特基触发器控制

编程题

需求:点击板子上的按键控制 LED 灯亮灭

步骤

  1. 定义 LED GPIO 引脚,此引脚为输出,连接外接设备 LED 灯
  2. 定义 按键 GPIO 引脚,此引脚为输出,连接外接设备 按键
  3. 监听 按键 GPIO 输入值,向 LED GPIO 输出值

参考

  1. https://blog.csdn.net/qq_42384937/article/details/83512162
  2. https://baike.baidu.com/item/gpio/4723219?fr=aladdin

审核编辑:符乾江

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分