目录
GPIO管脚的输出功能相当于控制、输入相当于检测
使用GPIO基本流程
对于某一个管脚来说最多有几种功能?
拓展 【定时器与系统定时器】
决定定时长短的因素:
普通定时器
系统定时器
STM32F103RBT6的时钟源有哪五种
sysclk 的时钟频率由哪个时钟源提供基础时钟频率
系统定时器有多少个寄存器, 每个寄存器的作用
计数值的范围
-
GPIO 类设备的驱动程序
- 全名:general purpose inputs/outputs 通用的输入输出管脚
- STM32F103RBT6 一共有5组 每组有16个管脚 【功能复用 】
- CPU是通过总线和外设通信的 故需要通过APB2总线使能GPIO管脚所在组的时钟
- AHB 系统内部的高速总线
- APB 外设总线
-
GPIO管脚的输出功能相当于控制、输入相当于检测
-
使用GPIO基本流程
- 看硬件电路原理图
- 通过APB2使能GPIOX组的时钟
- 初始化GPIO引脚 [Pin、Mode、Speed]
- 实现功能
-
对于某一个管脚来说最多有几种功能?
- 输入
- 上拉输入
- 下拉输入
- 浮空输入
- 输出
- 开漏输出
- 推挽输出
- 复用
- 开漏复用
- 推挽复用
- 模拟
- 模拟输入功能
-
拓展 【定时器与系统定时器】
- 粗略的延时
- 使用循环语句
- 精确的延时
- 使用定时器
-
决定定时长短的因素:
- 时钟频率
- 计数值
-
普通定时器
-
WDG 本质上也是定时器, 除了定时功能之外, 还可以让系统复位重启
-
RTC 实时时钟 年 月 日 时 分 秒
-
系统定时器
- 系统定时器并不是由ST提供的, 而是由arm-core提供
- 三种:systimer systick sysclk
-
- HSE 系统外部高速时钟
- HSI 系统内部高速时钟
- PLL 倍频器、乘法器
- LSE 系统外部低速时钟
- LSI 系统内部低速时钟
-
sysclk 的时钟频率由哪个时钟源提供基础时钟频率
- 因为系统内部时钟源, 比较不稳定, 所以由HSE提供系统时钟的时钟频率
-
系统定时器有多少个寄存器, 每个寄存器的作用
-
校准寄存器(CALIB):SysTick->CALIB
寄存器提供了SysTick定时器的校准值和特征信息。其中包含了SysTick的最大重装载值(MAXRELOAD)、SysTick计数器的位宽(BITS)以及是否支持外部时钟源等信息。这些信息可以用于进行精确的时间测量和延时控制。
-
当前值寄存器(VAL):SysTick->VAL
寄存器用于记录SysTick定时器的当前计数值。当SysTick计数器递减时,该寄存器的值将不断减小。通过读取该寄存器的值,可以获取当前的计数值,用于实现时间测量、延迟操作等。
-
重装载值寄存器(LOAD):SysTick->LOAD
寄存器用于设置SysTick定时器的重装载值。当SysTick计数器计数到0时,会重新装载该寄存器中的值,并触发中断或清零计数器(取决于控制寄存器的配置)。通过设置该寄存器的值,可以确定SysTick定时器的中断或溢出的时间间隔。
-
控制和状态寄存器(CTRL):SysTick->CTRL
寄存器用于控制和配置SysTick定时器的工作方式。它包含了使能/禁止定时器、设置中断使能、选择时钟源等控制位。通过对该寄存器的配置,可以启用或停止SysTick定时器,并根据需要配置中断使能、选择时钟源等。
-
计数值的范围
- 在STM32F103R系列中,SysTick计数器的位宽为24位,其计数值范围应为0 ~ 2^24-1(0至16777215)。在这个范围内,计数器会从重装载值开始递减,并在递减到0时重新装载重装载值,并触发中断或清零计数器。
- 重要词汇
- peripheral 外设
- prescaler 分频器