MxHanks' Blog

奔赴山海,保持热爱

0%

STM32 学习笔记

准备阶段

完成了 keil5 工具的安装

stm32 的基本信息

由意法半导体公司开发的 32 位单片机,作为中控

ST M32 F103 C8T6
品牌 产品信息 产品系列 规格型号
意法半导体 32位单片机 主流型 M3内核 72MHz 48 引脚 64kFlash LQFP封装 -40~85℃

G系列 通用; F系列 主流; H系列 高性能; L系列 低功耗; W系列 无线

C8T6:

  • 引脚数量 48 ©,
  • Flash 容量 8Kbit ,
  • 封装类型 T = LQFP ,
  • 温度范围 6 = -40~85℃
  • T = 36; C = 48; R = 64; V = 100; Z = 144;
  • H = BGA; I = UFBGA; T = LQFP; U = VFQFPN (封装类型表示焊盘形状)
  • 6 = -40~85 ℃
  • 7 = -40~105 ℃

stm32 引脚分布

根据 LQFP48 找到引脚分布图

alt text

引脚排列规则:左上角为 1 号,逆时针排序

特殊引脚

  • VDD : 供电+ (3.3V)
  • VSS : 接地 0V
  • NRST : 复位 接复位按钮
  • VBAT : 备用电池
  • BOOT0 : 启动模式选择

为何不用 VSS

alt text

普通引脚的命名规则

  1. 以字母作为组编号
  2. 以数字作为引脚编号

例如:

  • GPIOA : PA0 PA1 PA2 … PA15 (16个)
  • GPIOB : PB0 PB1 PB2 … PB15 (16个)
  • GPIOC : PC13 PC14 PC15
  • GPIOD : PD0 PD1

| 注意:引脚编号连续,在实际位置上不一定连续

GPIO

GPIO 是什么?

片上外设,类似于人体的器官,可以独立完成一些任务

alt text

有什么功能?

可以控制 IO 引脚,见 1.3.3 举例,GPIO 可以控制其对应的一组引脚

的八种工作模式

输入 输出
通用输出推挽 输入上拉
通用输出开漏 输入下拉
复用输出推挽 输入浮空
复用输出开漏 模拟模式

参考手册 I/O端口位的基本结构

输入

输出结构示意

推挽

  • 推(Push): 寄存器为 0 接入 Vss 向外推电流
  • 挽(Pull): 寄存器为 1 接入 Vdd 从外向里拉电流

推与挽

开漏

开漏模式下,P-MOS 始终保持断开,寄存器为 0 时接入 Vss 输出低电压,寄存器位 1 时引脚悬空,进入高阻抗状态

开漏

通用和复用

通用模式下,直接通过编程 CPU 控制 IO 引脚输出高/低电压;复用模式下,通过其它的片上外设来控制引脚

通用和复用

IO 的最大输出速度

IO 最大输出速度,指的是向 IO 交替写 0 和 1 且不失真的最快速度。

在非理想情况下,电压上升和下降都需要一定时间,那么可以分为三个阶段:上升时间、下降时间、保持时间。这个时间就限制了 IO 的最大输出速度,当保持时间为 0 时,就达到了最大输出速度。

由此,调整上升时间和下降时间就可以调整最大输出速度。

我们使用的芯片提供了三种最大输出速度,低速 2MHz ,中速 10MHz ,高速 50MHz。

在编程时,应该选择满足要求的最低最大输出速度,电压变化过于陡峭时会增加耗电,并且引入 EMI 问题(电磁干扰)。

| 冷知识 人眼的临界闪光频率是 45.8Hz 所以我们完全感受不到 50Hz 的交流灯光