嵌入式学习只炼气期第三层——STM32单片机入门常识

什么是STM32单片机

STM32 单片机

STM32单片机 是由 ST 公司生产的主要基于ARM Cortex-M内核的一系列32位单片机

ST:意法半导体(STmicroelctronis,简称 ST)集团于1987年成立,是由意大利的SGS 微电子公司和法 Thomson半导体公司合并而成,ST 公司生产的 MCU 系列有 STM8 和 STM32

意法半导体公司官网

32 位单片机:

本质上是CPU内部的ALU是8位的,CPU是单片机的核心,ALU是CPU的核心

单片机的CPU寄存器(如累加器、指令寄存器、程序计数器等)的宽度为32位,可以支持更大的地址空间。

单片机内部的数据总线宽度(单片机进行内部数据传输的线路)为32位,可以一次可以读取、处理和写入32位的数据,而8位单片机一次性只能处理8位数据,如果8位单片机要处理32位数据,那么就需要分多次处理

例如,一个32位的地址寄存器可以寻址 2^32 种地址,即最大可以拥有4GB的内存空间,而我们使用的windows电脑现在大多是64位的,那它的内存最大可以为2^64种地址,即可以拥有17179869184GB

ARM 内核

ARM 是一家公司,它是 Keil 软件的母公司

ARM 公司提供 ARM 处理器架构(采用 RISC-精简指令集),主要用于移动端芯片的设计(比如手机、平板,穿戴设备)芯片

桌面端芯片设计主要用 X86 架构(采用 CISC -复杂指令集),比如 AMD 和 Intel 的芯片都使用 X86 架构

ARM 处理器架构命名史:

从 1984 的 ARM1 到 2004 ARM11

之后放弃数字命名,用 Corex来命令处理器产品

Cortex-A 系列:主打高性能手机,平板,智能电视等

Cortex-R 系列:主打实时汽车,工业控制,医疗设备

Cortex-M 系列:主打嵌入式 传感器,智能家居等

每一个系列都有很多版本,比如 Cortex-M3、Cortex-M4 等

嵌入式领域的芯片主要使用Cortex-M 内核系列

STM32 系列单片机命名规则

STM32系列单片机支持的不同内核和应用场景

STM32F103C8T6单片机

我学习STM32单片机使用的是和江科大同款的 STM32F103C8T6单片机,也买了同款全套硬件

 STM32F103单片机是中等容量高性能系列,集成了Arm Cortex-M3 32位RISC内核

引脚功能

1. 电源引脚

  • VDD 和 VSS:芯片的电源引脚,用于供电和接地。
    • VDD:电源正极(通常3.3V)。
    • VSS:电源地(GND)。
  • VDDA 和 VSSA:模拟电源引脚,用于ADC等模拟功能。

2. 时钟引脚

  • OSC_IN 和 OSC_OUT:外部时钟输入/输出引脚,用于连接外部晶振。
  • PC14-OSC32_IN 和 PC15-OSC32_OUT:32kHz低速外部时钟输入/输出引脚,用于RTC(实时时钟)

3. 复位引脚

  • NRST:复位引脚,用于复位芯片。可以通过外部按钮或电路触发复位。

4. 备用电源引脚

  • VBAT:备用电池引脚,用于为RTC和备份寄存器供电。

5. GPIO 引脚

  • PA0 到 PB15:通用I/O引脚,支持多种功能。
    • I/O 类型:输入/输出(I/O)或仅输入(I)
    • 主功能:默认的GPIO功能(如PA0作为普通I/O)
    • 复用功能:连接到外设(如定时器、串口、SPI等)
    • FT 标记:表示该引脚支持5V容错(5V Tolerant)

6. 专用功能引脚

  • BOOT0:启动模式选择引脚,用于选择芯片的启动模式
  • PA0-WKUP:唤醒引脚,用于从待机模式唤醒
  • PC13-TAMPER-RTC:连接到RTC的备用引脚,可用于防篡改功能

最小系统

下图使用的是嘉立创地阔星开发板的图片和最小系统原理,非常推荐购买,价格实惠功能全面

立创·地阔星STM32F103C8T6开发板 - 立创开源硬件平台

开发方式

我们在51系列单片机中用到的开发方式是基于寄存器的开发,但是对于STM32这种32位单片机,随着它功能强大的同时,寄存器数量也随之急剧增加,所以传统的寄存器开发效率很低,从而出现了基于库函数的开发,分别有标准库函数和HAL库函数

  1. 基于寄存器开发
    优点:
    代码执行效率高、对硬件理解深入、更换其他芯片上手快
    缺点:
    开发效率低、代码移植不方便
  2. 基于标准库函数开发
    优点:
    相比寄存器开发效率提高、相比寄存器开发难度降低、相比寄存器开发移植容易
    缺点:
    屏蔽一些硬件信息,不利于新手学习知识
    官方己经停止对标准库的更新,新的芯片己经不提供标准库
  3. 基于 HAL 库函数开发

    优点:
    ST 主推,支持力度大
    开发难度相比前面两种大大降低移植极其容易
    缺点:
    屏蔽几乎所有硬件信息,不利于新手学习知识
    只学习 HAL,学完之后基础知识不够牢固
    当迁移到其他 MCU 设备时,一切都要重新学习

至于学要学那种开发方式,我也不确定,有人说标准库太老不值得学,直接学HAL库,但也有人说HAL库还没有完全普及,现在很多公司都还在用标准库。如果你没有确定的选择,我的建议是全都要,库函数跟着江科大学习,寄存器和HAL库跟着尚硅谷学习,不仅可以全都要,还可以巩固学习成果

开发工具

Keil MDK-ARM

Keil 毕竟是 ARM 的子公司所以对采用ARM内核的芯片的适配力度肯定是很好的

Keil 支持寄存器开发和标准库函数开发

VScode+Keil插件

虽然KEIL的编辑和调试能力很强,但是拉胯的代码补全能力让代码写起来很累,所以采用很多嵌入式工程师常用的方法——代码的编辑在VScode中完成,代码的调试在KEIL中完成。

STCubeMX

前两种的开发工具主要用于寄存器和标准库函数开发,而HAL库的开发需要使用ST公司开发的STCubeMX进行图形化开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值