STM32单片机学习篇1

1.STM32

STM32是S他公司基于ARMCotex-M内核开发的32位微控制器,通常使用在嵌入式开发领域,功能强大,资源丰富,功耗低,是一款经典的嵌入式微控制器

2.STM32F103C8T6(最小系统版)

  • 产品类型:F:通用类型
  • 产品子系列:103增强型,此外有101基本型、105/107互联型
  • 引脚数目:T36脚,此外有C48脚,R68脚
  • 闪存存储器容量:6代表32K字节的闪存存储器,此外有4即16K字节的闪存存储器等
  • 封装:T代表封装的是LQFP,此外还有H即BGA的封装类型等
  • 温度范围:6代表工业级温度范围,即负40°至85°,此外还有7工业级温度范围,最高105°

系列:主流系列STM32F1

内核:ARM Cotex-M3

主频:72Mhz

RAM(运行内存):20K

AOM(程序存储器):64K

供电2.0-3.6V(标准3,3v)

封装:LQFP48(48个引脚)

3.片上资源/外设(不是所有的单片机都具有所有的外设,需根据实际情况)

NVIC嵌套向量中断控制器

SysTick系统滴答定时器

|----------|-----------|----------|-----------|
| 英文缩写 | 名称 | 英文缩写 | 名称 |
| NVIC | 嵌套向量中断控制器 | CAN | CAN通信 |
| SysTick | 系统滴答定时器 | USB | USB通信 |
| RCC | 复位和时钟控制 | RTC | 实时时钟 |
| GPIO | 通用IO口 | CRC | CRC校验 |
| AFIO | 复用IO口 | PWR | 电源控制 |
| EXTI | 外部中断 | BKP | 备份寄存器 |
| TIM | 定时器 | IWDG | 独立看门狗 |
| ADC | 模数转换器 | WWDG | 窗口看门狗 |
| DMA | 直接内存访问 | DAC | 数模转换器 |
| USART | 同步/异步串口通信 | SDIO | SD卡接口 |
| I2C | I2C通信 | FSMC | 可变静态存储控制器 |
| SPI | SPI通信 | USB OTG | USB主机接口 |

4.启动配置

|----------|-------|--------|----------------------------------|
| 启动模式选择引脚 | | 启动模式 | 说明 |
| BOOT1 | BOOT0 | | |
| X | 0 | 主闪存存储器 | 主闪存存储器被选为启动区域(用户程序) |
| 0 | 1 | 系统存储器 | 系统存储器被选为启动区域(需要用到串口下载程序,34-40引脚) |
| 1 | 1 | 内置SRAM | 内置SRAM被选为启动区域(调试用) |

5.最小系统电路

供电电路:只要供电,需要加上滤波电容,稳定供电的作用

晶振电路:主晶振一般都是8zHz

复位电路:先低电平,后高电平

  • 采用阻容复位电路(10kΩ电阻和0.1μF电容)实现上电复位。
  • 可添加手动复位按钮,通过下拉电阻(如10kΩ)和电容(如0.1μF)实现低电平复位。
  • NRST引脚内部有弱上拉,外部电路需避免冲突

启动配置:相当于开关的作用

下载端口:

时钟电路:

STM32支持内部和外部时钟源,外部时钟提供更高精度:

  • 外部高速时钟(HSE):8MHz晶振搭配20pF负载电容,用于系统主时钟。
  • 外部低速时钟(LSE):32.768kHz晶振,用于RTC和低功耗模式。

调试接口:SWD(Serial Wire Debug)是STM32常用的调试接口:

  • 连接SWDIO(PA13)和SWCLK(PA14)引脚,搭配4.7kΩ上拉电阻。
  • 可选添加RESET引脚连接,便于全芯片复位。
  • 调试器(如ST-Link)通过SWD协议与芯片通信。

6.软件安装(软件开发环境)

  • 安装Keil5 MDK
  • 安装器件支持包(kei5需要安装,在线安装相关包比较慢):如果不安装,只有ARM,无法使用STM32创建工程
  • 软件注册(注册后方便使用)
  • 安装STLINK驱动(win+x打开设备管理器,查看是否安装驱动,没有安装会出现感叹号小标)
  • 安装USB转串口驱动

7.新建工程

  • 基于寄存器的方式创建(不建议)
  • 库函数的的创建方式(比较适合学习)
  • HAL的图形化的创建方式(学习底层逻辑之后可以使用,由于隐藏了底层逻辑)

8.创建工程步骤

  • 建立工程文件夹,keil中新建工程,选择型号
  • 工程文件夹里创建Start,Library,User等同名称的分组,然后将文件夹里的文件添加到工程分组里(Startup文件:复位中断即调动systemInit和main函数;其他中断,调用中断和处理函数system文件:送一systemInit,定义main函数,定义中断和处理函数,其他用户文件;stem32f10函数:外设寄存器描述,内核寄存器描述,库函数,库函数的配置)
  • 工程选项,C/C++,Include Paths里声明所有包含头文件的文件夹;Define内定义USE_STDPERIPH_DRIVER;debug下拉列表选择对应调试器,SEttings,Flash Download里勾选Reset and Run,选择调试器来进行下载,用什么就选择什么

9.GPIO简介

  • 通用的输入输出口,可配置为8种输入输出模式

|-----------|--------|-------------------------------|
| 模式名称 | 性质 | 特征 |
| 浮空输入 | 数字输入 | 可读取引脚电平,若引脚悬空,则电平不确定 |
| 上拉输入(弱上拉) | 数字输入 | 可读取引脚电平,内部连接上拉电阻,悬空时默认高电平 |
| 下拉输入(弱下拉) | 数字输入 | 可读取引脚电平,内部连接下拉电阻,悬空时默认低电平 |
| 模拟输入 | 模拟输入 | GPIO无效,引脚直接接入内部ADC |
| 开漏输出 | 数字输出 | 可输出引脚电平,高电平为高阻态,低电平接VSS |
| 推挽输出 | 数字输出 | 可输出引脚电平,高电平接VDD,低电平接VSS |
| 复用开漏输出 | 数字输出 | 由片上外设控制,高电平为高阻态,低电平接VSS |
| 复用推挽输出 | 数字输出 | 由片上外设控制,高电平接VDD,低电平接VSS |

  • 引脚电平:0v-3.3v(低电平到高电平),部分引脚可容忍5v
  • 输出模式下可控制端口输出.高低电平,用以驱动LED,蜂鸣器,模拟通信协议输出时序等
  • 输入模式下可以读取端口的高低电平和电压,用于读取按键输入,外接模块电平信号输入,ADC电压采集,模拟通信协议接收数据

10.LED与蜂鸣器的简介

  • LED:发光二极管,正向通电点亮,反向通电不亮
  • 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定
  • 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音

11.按键简介

  • 按键:常见的输入设备,按下导通,松手断开
  • 按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动

12.传感器介绍

传感器模块:传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化,通过与定值电阻分压即可得到模拟电压输出,再通过电压比较器进行二值化即可得到数字电压输出

相关推荐
風清掦1 小时前
【江科大STM32学习笔记-05】EXTI外部中断11
笔记·stm32·学习
小龙报1 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业1 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能1 小时前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微
czwxkn1 小时前
4STM32(stdl)TIM定时器
stm32·单片机·嵌入式硬件
Love Song残响2 小时前
NVIDIA显卡终极优化指南
stm32·单片机·嵌入式硬件
qq_672592752 小时前
电源芯片为什么发热
单片机·嵌入式硬件
天天爱吃肉82182 小时前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车
国科安芯3 小时前
抗辐照MCU在精密时频系统中的单粒子效应评估与可靠性验证
单片机·嵌入式硬件·架构·制造·安全性测试
森焱森3 小时前
嵌入式硬件工程师应知 白银快速分析报告
linux·c语言·arm开发·嵌入式硬件·去中心化