STM32 外设简介

embedded/2024/11/26 10:16:53/

STM32 外设简介

STM32 是由意法半导体 (STMicroelectronics) 开发的一系列基于 ARM Cortex 内核的微控制器,广泛应用于嵌入式系统中。STM32 系列的一个重要特点是其丰富而强大的外设模块,支持多种接口和功能,能满足工业控制、物联网、消费电子等多领域需求。

STM32 的外设可大致分为以下几类:


1. GPIO(通用输入/输出)

GPIO 是最基础的外设,用于与外部设备进行数字信号交互。

  • 特点

    • 每个引脚可配置为输入、输出、复用功能或模拟模式。
    • 支持上拉、下拉、电平触发中断。
    • 可用于连接按键、LED、外部模块等。
  • 应用对象

    • 按键输入
    • 状态指示灯控制
    • 与简单数字设备通信

2. 定时器(Timer)

定时器是一种核心外设模块,广泛用于计时、计数、PWM 输出等功能。

  • 特点

    • 包括通用定时器、高级定时器和基本定时器。
    • 支持输入捕获、输出比较、编码器接口、PWM 生成等功能。
    • 支持精确的时间控制和事件管理。
  • 应用对象

    • 电机控制(PWM 输出)
    • 定时触发事件
    • 频率/脉冲测量

3. 串行通信接口

STM32 提供多种通信接口,用于与外部设备或其他微控制器进行数据交换。

USART/UART(通用同步/异步收发器)
  • 特点
    • 支持异步通信(UART)和同步通信(USART)。
    • 可用于标准串口通信,如调试、数据传输。
  • 应用对象
    • 电脑串口调试
    • 外部传感器数据读取
    • 蓝牙、Wi-Fi 模块通信
SPI(串行外设接口)
  • 特点

    • 高速同步串行通信,支持主从模式。
    • 常用于连接高速外部设备,如 ADC、FLASH 存储器、显示屏。
  • 应用对象

    • 存储设备访问
    • TFT 屏幕驱动
    • 高速传感器模块
I²C(双线接口)
  • 特点

    • 支持多主多从,具有数据校验功能。
    • 低速串行总线,常用于低速外围设备。
  • 应用对象

    • EEPROM 读写
    • 温湿度传感器读取
    • 低功耗外设通信
CAN(控制器局域网)
  • 特点

    • 用于实时工业控制场景,具有很强的抗干扰能力。
    • 支持高效的多设备通信。
  • 应用对象

    • 工业自动化控制
    • 汽车电子系统
USB(通用串行总线)
  • 特点

    • 提供 USB 设备和 USB 主机功能。
    • 支持 USB CDC、HID 等多种设备模式。
  • 应用对象

    • USB 通信设备
    • 外设数据存储

4. ADC/DAC

ADC(模数转换器)
  • 特点

    • 将模拟信号(如电压)转换为数字信号。
    • 支持多通道、多模式转换。
  • 应用对象

    • 模拟传感器(如温度、光照强度)信号读取
    • 电池电压监测
DAC(数模转换器)
  • 特点

    • 将数字信号转换为模拟信号输出。
    • 可用于产生波形信号。
  • 应用对象

    • 音频信号生成
    • 模拟信号驱动

5. DMA(直接存储器访问)

DMA 是一种数据搬运引擎,用于在内存和外设之间快速传输数据,减少 CPU 的负担。

  • 特点

    • 支持外设到内存、内存到外设、内存到内存的高速传输。
    • 大幅降低 CPU 参与率,提高系统性能。
  • 应用对象

    • 高速数据采集(如 ADC 数据采集)
    • 显示数据刷新(如 SPI 显示屏)

6. RTC(实时时钟)

RTC 是独立的计时外设,专用于跟踪日期和时间。

  • 特点

    • 支持闰年计算。
    • 可以在低功耗模式下运行。
    • 支持闹钟功能。
  • 应用对象

    • 实时数据记录
    • 低功耗设备时间管理

7. Watchdog(看门狗)

看门狗是一种安全外设,用于防止系统因软件异常而失控。

  • 特点

    • 定期复位防止死机。
    • 支持独立看门狗(IWDG)和窗口看门狗(WWDG)。
  • 应用对象

    • 工业控制
    • 高可靠性系统

8. 存储接口

STM32 支持多种存储接口,用于扩展外部存储器。

  • FSMC(灵活静态存储控制器):支持 NOR FLASH、SRAM、LCD 控制。
  • SDIO(SD 卡接口):用于直接连接 SD/MMC 卡。
  • Quad-SPI(四线 SPI):用于高速外部 FLASH 存储访问。

9. 电机控制外设

STM32 提供专门的电机控制外设(如高级定时器、OPAMP、COMP),广泛应用于电机驱动和能量转换。

  • 特点

    • 支持正弦波调制 (SVPWM)。
    • 内置死区控制。
    • 提供硬件过流保护。
  • 应用对象

    • 无刷电机控制 (BLDC)
    • 伺服电机驱动

10. 安全外设

STM32 提供多种安全外设以增强系统的可靠性。

  • CRC(循环冗余校验):用于数据完整性校验。
  • AES(硬件加密):用于数据加密和解密。
  • 防篡改机制:通过独立外设检测非法访问和篡改行为。

STM32 外设应用对象概述

STM32 的外设广泛应用于以下领域:

应用场景典型外设
消费电子GPIO、USART、SPI、I²C
工业控制CAN、定时器、ADC、DAC
物联网USB、USART、RTC、低功耗模式
汽车电子CAN、PWM、电机控制
音频与视频处理I²S、DAC、DMA
数据采集与分析ADC、DMA、FSMC

http://www.ppmy.cn/embedded/140593.html

相关文章

认识RabbitMq和RabbitMq的使用

1 认识RabbitMq RabbitMQ是⼀个消息中间件,也是⼀个生产者消费者模型,它负责接收,存储并转发消息。 2.1 Producer和Consumer Producer:生产者,是RabbitMQServer的客户端,向RabbitMQ发送消息 Consumer&…

affine_grid转onnx issue记录

affine_grid的官方链接: torch.nn.functional.affine_grid — PyTorch 2.5 documentation [ONNX] Support affine_grid_generator Issue #30563 pytorch/pytorch GitHub import torch import torch.nn as nnclass Model(nn.Module):def __init__(self):super(Model, sel…

Linux 命令和 vi/vim 命令

Linux 命令概览 1. 文件和目录操作 列出目录内容 ls:列出当前目录内容ls -l:以长格式列出ls -a:显示隐藏文件ls -lh:以长格式和人类可读方式显示大小ls -R:递归列出子目录ls -d */:仅列出目录ls -t&#x…

Linux 从 apt / yum 更新、升级中排除 / 保留 / 阻止特定软件包

注:本文为 “Linux 从 apt / yum 更新、升级中排除 / 保留 / 阻止特定软件包” 的两篇相关文章合辑。 从 Yum 更新中排除特定 / 某些包的三种方法 作者: Magesh Maruthamuthu 译者: LCTT geekpi 2019-09-07 14:58 作为系统更新的一部分&am…

Linux系统编程之进程基础知识

概述 在Linux系统中,进程是指一个正在运行的程序实例。每个进程都有一个唯一的进程标识符,即PID,操作系统通过这个PID来唯一识别和管理各个进程。进程不仅仅是程序代码的运行实例,它还包含了程序运行时所需的各种资源,…

【JavaEE初阶】枫叶经霜艳,梅花透雪香-计算机是如何运行的?

本篇博客给大家带来的是与计算机相关的知识点, 包括:计算机的组成, 指令, 进程(重点). 文章专栏: JavaEE初阶 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 1. 计算机的组成 1.1 计算机的发展史 计算…

基于SSM的校园订餐管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

【Qt流式布局改造支持任意位置插入和删除】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、源代码二、删除代码三、扩展总结 前言 最近在做一个需求需要流式布局,虽然官方example里有一个流式布局范例,但是不能满足我的需求…