STM32基础知识

简介: STM32基础知识

一、STM32相关介绍

首先你得先了解STM32相关的内容,其中包括七部分:

1  芯片命名规则

2  Cortex-M内核和STM32芯片内部结构

3 时钟系统配置

4  STM32内部资源地址(存储空间)

5  BOOT映射和代码启动运行顺序

6  HAL库、LL库、标准库编程和寄存器编程

7 程序工程代码结构和编译过程


HAL

ST官方推崇的新编程库;HALHardware Abstraction Layer的缩写,中文名:硬件抽象层。HAL库是STSTM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。HAL使用了比较大的FlashSRAM


LL库(Low Layer

是ST最近新增的库,与HAL捆绑发布,文档也是和HAL文档在一起的LL库更接近硬件层,对需要复杂上层协议栈的外设不适用,直接操作寄存器。其支持所有外设。使用方法:独立使用,该库完全独立实现,可以完全抛开HAL库,只用LL库编程完成。在使STM32CubeMX生成项目时,直接选LL库即可。如果使用了复杂的外设,例如USB,则会调用HAL库混合使用,和HAL库结合使用。编译后LL库只有HAL库的33%体积。


标准固件库

旧版本编程库;HAL库是ST未来主推的库,从前年开始ST新出的芯片已经没有STD库了。


二、STM32GPIO外设

GPIO:General Purpose Input Output通用用途输入输出

它的核心功能:输入、输出和高级外设的复用功能


每个GPIO包括10个寄存器来配置GPIO的具体功能(每个引脚功能都是完全可以独立配置,互不影响):


  • GPIOx_MODER:GPIO 端口模式寄存器
  • GPIOx_OTYPER :GPIO 端口输出类型寄存器
  • GPIOx_OSPEEDR :GPIO 端口输出速度寄存器
  • GPIOx_PUPDR :GPIO 端口上拉/下拉寄存器
  • GPIOx_IDR :GPIO 端口输入数据
  • GPIOx_ODR :GPIO 端口输出数据寄存器
  • GPIOx_BSRR :GPIO 端口置位/复位寄存器
  • GPIOx_LCKR :GPIO 端口配置锁定寄存器
  • GPIOx_AFRL :GPIO 复用功能低位寄存器
  • GPIOx_AFRH :GPIO 复用功能高位寄存器
  • GPIOx_BRR:GPIO位复位寄存器


为实现不同工作条件要求,GPIO有8种工作模式:


  • 输入浮空
  • 输入上拉
  • 输入下拉
  • 模拟功能
  • 开漏输出
  • 推挽输出
  • 复用开漏输出
  • 复用推挽输出


相关文章
|
6月前
|
芯片
【STM32】STM32简述中断的基础知识
【STM32】STM32简述中断的基础知识
|
7月前
|
C++ 内存技术
|
7月前
|
存储 C语言 芯片
C/C++ stm32基础知识超详细讲解(系统性学习day14)
C/C++ stm32基础知识超详细讲解(系统性学习day14)
|
7月前
|
数据采集 存储 传感器
STM32 ADC基础知识讲解
STM32 ADC基础知识讲解
156 0
|
芯片
STM32——IIC基础知识及例程使用(后续拓展)
STM32——IIC基础知识及例程使用(后续拓展)
442 1
STM32——IIC基础知识及例程使用(后续拓展)
|
传感器
STM32小项目总结1(部分基础知识+LED+蜂鸣器+按键控制LED+OLED显示屏+光敏传感器控制蜂鸣器)
STM32小项目总结1(部分基础知识+LED+蜂鸣器+按键控制LED+OLED显示屏+光敏传感器控制蜂鸣器)
723 0
STM32小项目总结1(部分基础知识+LED+蜂鸣器+按键控制LED+OLED显示屏+光敏传感器控制蜂鸣器)
STM32的HAL库开发系列 - ADC基础知识
STM32的HAL库开发系列 - ADC基础知识
159 0
|
存储 算法 芯片
STM32寄存器版的基础知识—内存映射
STM32F429 采用的是 Cortex-M4 内核,内核即 CPU,由 ARM公司设计。ARM 公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商(SOC)如 ST、TI、Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、USART(串口)、I2C、SPI等都叫做片上外设。
409 0
STM32寄存器版的基础知识—内存映射
|
6月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
472 2