当前位置: 首页 > news >正文

被裁20240927 --- 嵌入式硬件开发 STM32篇

在这里插入图片描述

人很容易原谅别人的错误但很难原谅别人的正确

  • 1. 文档、手册、指南、资源
  • 2. MCU 结构
  • 3. MCU 和 MPU 的区别
  • 4. 一些概念
    • 什么是看门狗 ?
    • 什么是 DMA ?
    • 什么是晶振 ?
    • 什么是片内外设?
    • 软件协议、硬件协议、数据协议、通讯协议、通信协议
    • uart、usart、RS232、RS485的区别
    • RS232、RS422、RS485是什么?
    • PWM信号调制
  • 5. STM32 最小系统
      • 一、电源电路
      • 二、时钟电路
      • 三、复位电路
      • 四、调试接口电路
      • 五、启动电路
  • 6.为什么使用 MCU?
  • 7. 如何选型?
  • 8. 如何使用STM32MCU芯片?
    • 一、自己设计电路板
    • 二、购买官方开发板(或第三方开发板)
  • 9. 程序开发步骤
  • 10. 硬件调试工具
  • 11. STM32 H743 为例
  • 12. STM32 H743 飞控
  • 参考文献

1. 文档、手册、指南、资源

  • 官网
  • Getting started with STM32
  • Getting started with peripherals
  • 快速开始
  • 开发者社区
  • 资料下载(手册、文档、指南、工具、软件包、笔记、课件等)
  • 开发工具下载(STM32Cube系列软件)
  • 与STM32适配的第三方组件与模块(4g5g模块、wifi、蓝牙等模块等)
  • 与STM32适配的第三方嵌入式软件(RT-Thread、QT、视觉检测软件等)
  • 第三方STM32开发板(正点原子、野火等)
  • 官方STM32开发板(评估板、探索套件板、NUCLEO板)
    【1】STM32 MCU开发板和硬件工具
    【2】evaluation_development_board

2. MCU 结构


在这里插入图片描述

在这里插入图片描述


STM32系列芯片的资源包括:

  • 少量的RAM
  • 少量的ROM
  • 看门狗
  • DMA
  • ADC、DAC
  • 中断
  • 定时器
  • 内部晶振(准确度不高)
  • uart、spi、I2c、can接口(串行接口、并行接口)

    在这里插入图片描述


    不同核心的STM32芯片具有不同的主频和储存资源:

    在这里插入图片描述

3. MCU 和 MPU 的区别

MCU中集成了少量的RAM和ROM。
在这里插入图片描述

4. 一些概念

什么是看门狗 ?

在嵌入式系统中,看门狗(Watchdog)是一种重要的硬件或软件机制,用于监视系统的运行状态并在出现故障或异常情况时采取适当的恢复措施。
看门狗通常由一个独立的硬件电路实现,也可以通过软件模拟实现。它基于一个简单的概念:定期喂食。当系统正常运行时,看门狗会定期接收到来自CPU或其他监控模块的喂食信号(即重置信号)。如果看门狗在预设的时间间隔内没有接收到喂食信号,它会认为系统出现故障或异常,并采取相应的恢复措施,如系统复位。
在这里插入图片描述

什么是 DMA ?

DMA(Direct Memory Access)即直接存储器访问,是一种允许某些硬件子系统(如外设)直接访问系统内存的技术,而无需中央处理单元(CPU)的介入。
定义:DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
作用:DMA技术主要用于解决大量数据转移过度消耗CPU资源的问题,使CPU能够更专注于其他操作,如计算和控制等。
在这里插入图片描述

什么是晶振 ?

时钟电路

什么是片内外设?

ADC、DAC、UART、SPI、I2C、CAN、USB、以太网、摄像头接口等。

软件协议、硬件协议、数据协议、通讯协议、通信协议

待续…

uart、usart、RS232、RS485的区别

待续…

RS232、RS422、RS485是什么?

串行通信接口标准
对比

特性RS-232RS-422RS-485
通信模式点对点单向多点双向多点
信号类型单端信号差分信号差分信号
最大传输距离15 米1200 米1200 米
最大速率115.2 kbps10 Mbps10 Mbps
应用场景短距离、单设备通信长距离、单一发送设备长距离、多设备通信

接口定义、接线方式
在这里插入图片描述

PWM信号调制

待续…

5. STM32 最小系统

STM32的最小系统是指能让STM32单片机正常运行的最少且必须的硬件元件组成的系统。这个系统通常包括以下几个关键部分:

一、电源电路

STM32单片机的工作电压一般为1.8V~3.6V(不同型号可能有所不同,但3.3V是常见的供电电压)。为了确保电源的稳定性,通常会使用稳压芯片,如AMS1117-3.3,将5V电压转换为稳定的3.3V电压供给单片机。此外,电源电路中还会加入多个滤波电容,以去除电源中的杂波和干扰信号,保证单片机的稳定运行。

二、时钟电路

时钟电路是STM32单片机的“心脏”,为单片机提供运行的时钟信号。STM32通常有两组晶振:

  • 高速晶振:一般为主时钟晶振,常见频率为8MHz(但可以通过内部倍频达到更高的工作频率)。这个晶振为单片机提供主时钟信号,使单片机能够高速运行各种程序和任务。
  • 低速晶振:通常为RTC(实时时钟)时钟晶振,频率一般为32.768kHz。这个晶振为实时时钟提供精确的时钟信号,保证时间的准确记录。

晶振两端通常会连接电容,以起到滤波和稳定频率的作用。

三、复位电路

复位电路是单片机的“免疫系统”,当系统出现故障或混乱时,可通过复位让系统重新开始。STM32是低电平复位,通常有手动复位和上电复位两种方式:

  • 手动复位:通过按键实现,当按下按键时,复位引脚接地为低电平,松开后恢复高电平,从而实现复位操作。
  • 上电复位:利用电容的充放电特性,在上电瞬间,由于电容两端电压不能突变,复位引脚为低电平,随着电容充电完成,复位引脚变为高电平,单片机开始正常工作。

四、调试接口电路

调试接口电路是开发过程中不可或缺的部分,它方便开发者进行程序的下载和调试。STM32常用的调试下载方式有JTAG和SWD:

  • JTAG:一种国际标准测试协议,主要用于芯片内部测试。标准的JTAG接口是4线接口,包括TMS(模式选择)、TCK(时钟)、TDI(数据输入)和TDO(数据输出)。
  • SWD:一种和JTAG不同的调试模式,使用的调试协议也不一样。与JTAG相比,SWD接口简单,只需要2根线(SWDIO和SWCLK)即可实现调试和下载功能,节省I/O口和板子空间,且在高速模式下更加可靠。

五、启动电路

启动电路决定了单片机的启动方式。STM32有三种启动模式,由BOOT0和BOOT1引脚在复位时的状态决定:

  • 从主Flash启动:最常见的启动方式,BOOT0为0,BOOT1为任意值。此时,代码存储在STM32的内置Flash中。
  • 从系统存储器启动:BOOT0为1,BOOT1为0。此时,内置ROM的起始地址将被重映射到0x00000000地址,通常用于执行串口程序下载(ISP)。
  • 从嵌入式SRAM中启动:BOOT0和BOOT1都为1。此时,代码从SRAM中启动,适合调试,但掉电后数据会丢失。

综上所述,STM32的最小系统由电源电路、时钟电路、复位电路、调试接口电路和启动电路组成。这些部分相互配合,共同为单片机的稳定运行提供了保障。

6.为什么使用 MCU?

  • 廉价
  • 低功耗
  • 可复用(可编程)

7. 如何选型?

结合使用场景?
主频?
RAM和ROM的大小?
ADC、DAC数量?
UART数量?
功耗?

  • 官网提供在线选型工具:
  • 官方选型软件 安装:ST MCU Finder
  • 查阅手册查看所有规格参数。

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

8. 如何使用STM32MCU芯片?

一、自己设计电路板

电路图设计?
电路设计工具?
设计步骤?
打印PCB板?
贴片?
编程、烧录?
调试测试?

二、购买官方开发板(或第三方开发板)

选择哪种板子?

  • 第三方STM32开发板(正点原子、野火等)
  • 官方STM32开发板(评估板、探索套件板、NUCLEO板)
    【1】STM32 MCU开发板和硬件工具
    【2】evaluation_development_board
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

9. 程序开发步骤

依次使用STM32Cube 系列软件:
在这里插入图片描述

STM32Cube 系列软件提供了:

  • HAL(High Abstraction Layer)
  • LL(Low Layer)
  • Examples
  • Readme files

STM32Cube 系列软件下载地址。

10. 硬件调试工具

在这里插入图片描述

11. STM32 H743 为例

【1】STM32H743概述
【2】STM32H743xI单片机 数据手册(描述、功能概述、引脚分配和定义、电气特性、封装等)
【3】STM32 H743手册、文档

12. STM32 H743 飞控

待续…

参考文献

【1】https://www.stmcu.com.cn
【2】https://www.doubao.com/chat

相关文章:

被裁20240927 --- 嵌入式硬件开发 STM32篇

人很容易原谅别人的错误但很难原谅别人的正确 1. 文档、手册、指南、资源2. MCU 结构3. MCU 和 MPU 的区别4. 一些概念什么是看门狗 ?什么是 DMA ?什么是晶振 ?什么是片内外设?软件协议、硬件协议、数据协议、通讯协议、通信协议u…...

留学生交流互动系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...

C/C++ 数据结构与算法【图】 图+邻接矩阵+邻接表+DFS+BFS+最小生成树+最短路径+拓扑排序详细解析【日常学习,考研必备】带图+详细代码

一、图的定义 1)无向图,有向图,完全图 2)稀疏图,稠密图,网,邻接,关联 3)度 4)路径 5)连通图 6)权与网 7)子图 8&#xff0…...

Linux实验报告7-文件管理

目录 一:实验目的 二:实验内容 (1)查看/etc/inittab文件的权限属性,并指出该文件的所有者以及文件所属组群。 (2)新建文件test,设置文件权限为r--r-----。 (3)新建文件test2,设系统中有用户study和用户组studygr…...

RJ45网口模块设计

1、以太网概述及RJ45实物 2、常用网口信号介绍 3、RJ45网口布局布线要点分析 4、总结 1、变压器下面需要进行挖空处理,以免底下的铜引入干扰,(将多边形挖空区域的所在层设置为Multi-Layer多层) 2、为了更直观的看一个类中线的长…...

电子电器架构 --- 智能座舱HUD技术革新

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源&…...

嵌入式开发中的机器人表情绘制

机器人的表情有两种,一种是贴图,一钟是调用图形API自绘。 贴图效果相对比较好,在存储空间大的情况下是可以采用的。 自绘比较麻烦,但在资源和空缺少的情况下,也是很有用的。而且自绘很容易通过调整参数加入随机效果&…...

orm01

静态文件处理 静态文件:如:图片、音频、视频、css、js等静态文件的相关配置也在 项目名/项目名/settings.py 文件中进行配置 - 配置静态文件的访问路径STATIC_URL- 功能:通过哪个 url 地址找静态文件- 默认配置:STATIC_URL /sta…...

Maven 测试和单元测试介绍

一、测试介绍 二、单元测试 1&#xff09;介绍 2&#xff09;快速入门 添加依赖 <dependencies><!-- junit依赖 --><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9…...

Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言

目录 七、Postman 1、安装 2、postman的界面介绍 八、Postman执行接口测试 1、请求页签 3、响应页签 九、Postman的环境变量和全局变量 1、创建环境变量和全局变量可以解决的问题 2、postman中的操作-全局变量 1️⃣手动设置 2️⃣代码设置 3️⃣界面获取 4️⃣代…...

UE5 丧尸类杂兵的简单AI

A、思路 1、关卡初始化时&#xff0c;自动产生随机巡逻点&#xff0c;小兵到达后&#xff0c;去另一个随机巡逻点。 2、加入视力&#xff0c;发现主角后&#xff0c;不再巡逻&#xff0c;而开始追击主角并攻击。条件循环。 3、加入听力。主角的奔跑与射击会产生噪音&#xf…...

Linux字符设备驱动开发的三种方式(分析+对比+示例)

文章目录 一. 字符设备的驱动方法二. 三种方法的对比三. 开发环境四. 代码示例1. 传统设备驱动模型2. 总线设备驱动模型3. 设备树驱动模型 五. 相关链接 一. 字符设备的驱动方法 字符设备驱动 是指在I/O传输过程中以字节流进行读写操作的设备。典型的如LCD、蜂鸣器、SPI、触摸屏…...

C++设计模式之行为型模式概述,它们的目的与特点

行为型设计模式需要解决的问题 行为型设计模式主要关注对象之间的责任分配和交互。它们解决的问题包括&#xff1a; 对象之间的通信&#xff1a;如何让对象之间高效地通信&#xff0c;同时保持松耦合。算法的封装与复用&#xff1a;如何将算法或行为封装起来&#xff0c;使其…...

把Huggingface下载的arrow数据集转化为json格式

Arrow2json 使用默认的Huggingface路径 以allenai/tulu-3-sft-mixture数据集为例。 使用load_dataset即可&#xff1a; from datasets import load_dataset# 加载数据集 dataset load_dataset("allenai/tulu-3-sft-mixture")# 指定保存路径 output_dir "~/…...

复习打卡大数据篇——Hadoop YARN

目录 &#xff11;.什么是yarn &#xff12;.yarn的三大角色 &#xff13;.任务&#xff08;MR&#xff09;提交到YARN运行流程 4. 调度器Scheduler 5.YARN HA 高可用 &#xff11;.什么是yarn YARN&#xff08;Yet Another Resource Negotiator&#xff09;是一个资源管…...

fpga系列 HDL:ModelSim显示模拟波形以及十进制格式数值

FPGA中使用数字滤波器时&#xff0c;可通过观察模拟波形更好地查看滤波效果。可以通过ModelSim中的波形格式设置来实现更直观的波形显示。 右键波形->Format-> Analog 效果 不同的数值格式显示&#xff1a;右键波形->Radix-> Decimal 效果 示例代码 ver…...

Linux 基本指令

目录 1.常见指令 1.1 ls指令 1.2 pwd指令 1.3 cd指令 1.4 touch指令 1.5 mkdir指令 1.6 rm和rmdir指令 1.7 man指令 1.8 cp指令 1.9 mv指令 ​编辑 1.10 cat指令 1.11 more指令 1.12 less指令 1.13 head指令 1.14.tail指令 1.15 时间相关的指令 1.16 cal…...

GO语言基础面试题

一、字符串和整型怎么相互转换 1、使用 strconv 包中的函数 FormatInt 、ParseInt 等进行转换 2、转换10进制的整形时&#xff0c;可以使用 strconv.Atoi、strconv.Itoa&#xff1a; Atoi是ParseInt(s, 10, 0) 的简写 Itoa是FormatInt(i, 10) 的简写 3、整形转为字符型时&#…...

要查询 `user` 表中 `we_chat_subscribe` 和 `we_chat_union_id` 列不为空的用户数量

文章目录 1、we_chat_subscribe2、we_chat_union_id 1、we_chat_subscribe 要查询 user 表中 we_chat_subscribe 列不为空的用户数量&#xff0c;你可以使用以下 SQL 查询语句&#xff1a; SELECT COUNT(*) FROM user WHERE we_chat_subscribe IS NOT NULL;解释&#xff1a; …...

小程序基础 —— 10 如何调试小程序代码

如何调试小程序代码 在进行项目开发的时候&#xff0c;不可避免需要进行调试&#xff0c;那么如何调试小程序呢&#xff1f; 打开微信开发者工具后&#xff0c;有一个模拟器&#xff0c;通过模拟器能够实时预览自己写的页面&#xff0c;如下&#xff1a; 在上部工具栏中有一个…...

PyTorch 2.8镜像基础教程:torch.compile加速、FlashAttention-2启用参数详解

PyTorch 2.8镜像基础教程&#xff1a;torch.compile加速、FlashAttention-2启用参数详解 1. 镜像环境快速验证 在开始使用PyTorch 2.8镜像前&#xff0c;我们需要先确认环境是否正常工作。打开终端&#xff0c;运行以下命令&#xff1a; python -c "import torch; prin…...

大模型微调:教科书级数据工程,200条数据提升170%BLEU!揭秘金融与医疗领域爆款模型的底层逻辑

本文深入探讨了大模型微调的数据工程与评估体系。核心观点是&#xff1a;高质量数据比海量样本更重要&#xff0c;通过精细的数据过滤和选择&#xff0c;即使是小数据集也能显著提升模型效果。文章对比了SFT、RLHF、GRPO三种主流微调方法&#xff0c;并以金融客服和医疗问答为例…...

SeqGPT-560M金融信贷申请:申请人/收入证明/抵押物/授信额度结构化

SeqGPT-560M金融信贷申请&#xff1a;申请人/收入证明/抵押物/授信额度结构化 1. 项目概述 SeqGPT-560M是一个专门针对金融信贷场景深度优化的智能信息抽取系统。与通用聊天模型不同&#xff0c;这个系统专注于从复杂的非结构化文本中精准提取关键金融信息&#xff0c;特别适…...

Capacitor插件避坑指南:Android/iOS双端自动更新那些踩过的坑

Capacitor跨平台自动更新实战&#xff1a;Android与iOS双端兼容性深度解析 移动应用开发中&#xff0c;自动更新功能是提升用户体验的关键环节。对于使用Capacitor框架的开发者而言&#xff0c;如何优雅处理Android和iOS平台的差异&#xff0c;成为技术实现的核心挑战。本文将…...

从零开始深度学习:PyTorch 2.8镜像环境配置与验证教程

从零开始深度学习&#xff1a;PyTorch 2.8镜像环境配置与验证教程 1. 为什么选择PyTorch 2.8镜像&#xff1f; 深度学习环境配置一直是让开发者头疼的问题&#xff0c;特别是当需要GPU加速时&#xff0c;PyTorch版本、CUDA工具包、显卡驱动之间的兼容性问题常常让人望而却步。…...

告别复杂配置!Qwen-Image-2512-SDNQ一键部署,打造专属AI绘画网站

告别复杂配置&#xff01;Qwen-Image-2512-SDNQ一键部署&#xff0c;打造专属AI绘画网站 1. 为什么选择Qwen-Image-2512-SDNQ镜像&#xff1f; 在AI绘画领域&#xff0c;模型部署往往意味着复杂的配置和环境搭建。Qwen-Image-2512-SDNQ-uint4-svd-r32镜像彻底改变了这一现状&…...

PyTorch 2.5快速部署指南:3步开启你的AI模型训练之旅

PyTorch 2.5快速部署指南&#xff1a;3步开启你的AI模型训练之旅 1. PyTorch 2.5环境准备 PyTorch 2.5作为当前最流行的深度学习框架之一&#xff0c;带来了多项性能优化和新特性。在开始之前&#xff0c;我们需要确保环境配置正确。 1.1 系统要求检查 操作系统&#xff1a…...

从SIM卡到基站信令:IMSI号码的5种获取方式全解析(含读卡器/Wireshark对比)

从SIM卡到基站信令&#xff1a;IMSI号码的5种获取方式全解析&#xff08;含读卡器/Wireshark对比&#xff09; 在物联网设备管理和移动通信维护领域&#xff0c;IMSI&#xff08;International Mobile Subscriber Identity&#xff09;作为SIM卡的核心标识符&#xff0c;其获取…...

霞鹜文楷GB:为什么选择这款免费开源的中文国标字体?

霞鹜文楷GB&#xff1a;为什么选择这款免费开源的中文国标字体&#xff1f; 【免费下载链接】LxgwWenkaiGB An open-source Simplified Chinese font derived from Klee One. 项目地址: https://gitcode.com/gh_mirrors/lx/LxgwWenkaiGB 霞鹜文楷GB是一款基于日本Klee O…...

【部署】windows下虚拟机OpenClaw Ubuntu 24.04.4 安装指南

未来已来,只需一句指令,养龙虾专栏导航,持续更新ing… 概述 前置环境:win10/11、vmware等虚拟机(安装时注意勾选VMware Tools、cpu可以分配2C,内存建议4G,硬盘空间建议给40G) 系统要求 Node.js 22+:安装脚本可自动检测并安装(下文补充手动安装方案); Ubuntu 24.0…...