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

入门级STM32F103C8T6无人机(原理图其一)

本章导图
本章导图
​​​​

 一、STM32F103C8T6 最小系统电路中各接口(引脚)的解释及作用

一)电源相关引脚

  • 3.3V:为芯片及部分外围电路提供 + 3.3V 工作电源,保障芯片正常运行所需的电压条件 。
  • VBAT(引脚 1):电池备份引脚,当主电源掉电时,可接入备用电池,用于维持实时时钟(RTC)和备份寄存器的数据,保证系统掉电后时间等信息不丢失 。
  • VDD_3芯片数字电源引脚,为内部数字电路提供工作电压,确保 CPU、总线等数字模块正常运行 。
  • VDDA_2、VDDA_1模拟电源引脚,为芯片内部 ADC(模数转换)、比较器等模拟电路供电,单独供电可减少数字电路对模拟电路的干扰,提升模拟信号处理精度 。
  • VSS:电源地引脚,为电路提供参考地电位,使电源形成回路,保障芯片及外围电路正常工作 。
  • PA0_WKUP(引脚 10 ):具备唤醒功能的引脚,可配置为唤醒源,在系统低功耗(如停机、待机模式)时,通过外部信号触发,将系统从低功耗状态唤醒,恢复正常工作 。

二)时钟相关引脚

  • OSC_IN(引脚 5 )、OSC_OUT(引脚 6 ):外部高速时钟输入 / 输出引脚,外接 8MHz(图中 Y1 为 8MHz 晶振 )等高速晶振,为芯片提供主时钟源(HSE),是系统大部分外设、CPU 运行时钟的基础,决定系统运行频率 。
  • PC14 - OSC32_IN(引脚 4 )、PC15 - OSC32_OUT(引脚 3 ):外部低速时钟输入 / 输出引脚,可外接 32.768kHz 晶振,为实时时钟(RTC)和看门狗(IWDG)提供低速时钟源(LSE),用于精准计时、低功耗场景下维持时间运行 。

三)复位与调试相关引脚

  • NRST(引脚 7 ):复位输入引脚,外接复位电路(图中 R3、C13 构成简单复位电路 ),当外部电路触发(如按键按下使电平变化 ),可让芯片复位,恢复初始状态,用于系统异常时重启、程序下载初始复位等 。
  • SWCLK(引脚 37 )、SWDIO(引脚 34 ):串行调试接口时钟 / 数据引脚,配合 SWD(串行线调试)协议,用于程序下载(将编译好的代码烧录到芯片 Flash )、在线调试(实时查看变量、单步执行程序等 ),是开发过程中调试、编程的重要接口 。

四)通用 IO 引脚及功能扩展

GPIO模式作用类比原理简化典型场景
输入模式当 “传感器”,检测外界电平引脚高阻态(相当于 “监听”),外部电平能传进芯片检测按键(按下 = 0V,松开 = 3.3V )、读传感器信号
输出模式当 “台灯开关”,控制外界电平引脚输出 3.3V(高电平)或 0V(低电平)点亮 LED(输出高 / 低控制亮灭 )、驱动继电器
复用功能模式当 “专用接口”,连外设(串口、SPI )引脚功能交给 “专用外设模块”(比如串口的 TX/RX )串口发数据(PA9 当 TX )、SPI 传数据(PA5 当 SCK )
模拟模式当 “精密探头”,给 ADC 用引脚完全模拟输入,无数字电路干扰ADC 测电压(精准读外部电压值 )
  •    复用功能模式:可配置为串口(如 PA9、PA10 可作 USART1 的 TX、RX ,用于串口通信收发数据 )、SPI(如 PA5 - PA7、PB3 - PB5 等可配置为 SPI 接口,实现与 SPI 设备如 NRF 模块(图中部分引脚关联 NRF )的数据高速传输 )、I2C(如 PB6、PB7 可配置为 I2C 接口,用于连接 I2C 设备通信 )、PWM(如 PA1 - PA3 等可配置为 PWM 输出,用于控制电机转速、LED 亮度调节等 )等功能,扩展芯片对外通信、控制能力,适配不同外设需求 。
  • 中断模式:部分引脚可配置为中断输入,当引脚电平变化(上升沿、下降沿等 )时,触发中断,让系统及时响应外部事件(如按键按下中断、传感器触发中断等 ),实现事件驱动的程序流程 。

五)其他功能引脚

  • BOOT0(引脚 19 ):启动模式选择引脚,配合 BOOT1(图中未完全体现,一般与 BOOT0 配合 ),可设置芯片启动方式,如从 Flash 启动(正常运行用户程序 )、从系统存储器启动(用于 ISP 下载程序等 )、从 SRAM 启动(调试等特殊场景 ),决定系统上电或复位后执行代码的来源 。

六)拓展:

1)VBAT 引脚:“系统的小备胎电池”
  • 作用类比
    把 STM32 想象成一台 “智能小电脑”,实时时钟(RTC)就像电脑里的 “电子表”,备份寄存器像 “小记事本”,记录着系统时间、重要配置(比如掉电前的一些参数)。
    主电源(比如 3.3V)是 “正常供电的插座”,但万一插座断电(主电源掉电),VBAT 引脚接的 “备用电池”(像手表里的纽扣电池)就会接力供电,让 “电子表” 和 “小记事本” 不停电,时间、记录不丢失。

  • 和 VCC 啥关系
    VCC 一般指 “主电源正极”(比如系统常用的 3.3V 或 5V),是芯片正常工作的 “主力供电”。而 VBAT 是专门给 RTC 和备份寄存器留的 “备胎电源接口”,只在主电源掉电时启动,平时主电源供电时,VBAT 也可以由主电源 “顺手” 供电(相当于备胎平时也跟着充电待命)。

2)VDD_3、VDDA:“电源也要分分工”
  • VDD_3(数字电源)
    类比:把芯片里的电路分成 “数字部门”(比如 CPU 算数据、逻辑判断)和 “模拟部门”(比如 ADC 测电压、比较器比信号)
    VDD_3 是给 “数字部门” 供电的,保证 CPU 跑程序、寄存器存数据这些数字信号稳定工作。

  • VDDA(模拟电源,比如 VDDA_1、VDDA_2 )
    类比:“模拟部门”(比如 ADC 要精确测电压)很怕干扰!如果和数字电路共用电源,数字电路 “开关瞬间” 的电流波动会影响模拟信号的精度。
    所以 VDDA 是专门给模拟电路供电的独立电源,让 ADC 测电压更准、比较器判断更稳,就像给 “精密仪器” 单独接一个干净的插座。

3)PA0_WKUP 唤醒:“喊醒睡大觉的芯片”
  • 低功耗场景
    类比:芯片有时候要 “省电睡大觉”(比如停机 / 待机模式),这时候 CPU 基本不工作,功耗极低,但也 “听不见外界信号”。

  • 怎么触发唤醒
    你可以把 PA0_WKUP 想象成 “唤醒按钮”:

    • 外部接个开关,一端接 PA0_WKUP,一端接地(或接电源,看配置)。
    • 当你按开关时,PA0 引脚的电平会变化(比如从 3.3V 变 0V,或反过来)。
    • 芯片检测到这个变化,就像听到 “起床铃”,从 “睡大觉” 模式醒过来,重新正常工作。
  • 原理简化
    芯片内部有 “唤醒检测电路”,盯着 PA0_WKUP 引脚的电平。一旦电平变化符合你设置的条件(比如上升沿:从 0V 变 3.3V;下降沿:从 3.3V 变 0V ),就会触发 “唤醒信号”,把系统从低功耗模式拉回正常模式。

4)时钟引脚:“芯片的心跳,快慢有分工”
  • 为啥要时钟
    类比:芯片里的电路要 “同步工作”,就像全班同学听老师口令一起行动。时钟信号就是这个 “口令节奏”,决定 CPU 跑多快、外设(比如串口、SPI)数据传多快。

  • 高速时钟(OSC_IN/OSC_OUT 接 8MHz 晶振)

    • 作用:给芯片 “主力系统” 提供时钟,比如 CPU 跑程序、大部分外设(串口、定时器)工作,都靠这个高速时钟 “带节奏”。
    • 类比:相当于 “班级大课间的快节奏音乐”,让大家快速干活。
  • 低速时钟(PC14/PC15 接 32.768kHz 晶振)

    • 作用:专门给 “实时时钟(RTC)” 和 “看门狗” 用。RTC 要精准走时(比如记年、月、日、时、分、秒),不需要太快的节奏;看门狗要 “慢悠悠盯着系统有没有死机”。
    • 类比:相当于 “班级午休的轻音乐”,维持基础功能,还省电。
5)NRST 复位:“重启按钮,让芯片回到‘出厂默认’”
  • 初始状态类比
    芯片刚上电(或复位)时,就像 “刚开机的新电脑”:CPU 里的临时数据清空、外设配置回到默认、程序从 “起始地址” 重新跑。

  • 怎么恢复初始状态
    NRST 引脚相当于 “硬件重启键”:

    • 外部电路(比如图里的 R3、C13)可以让 NRST 引脚产生一个 “低电平脉冲”(短暂变 0V 再恢复 3.3V )。
    • 芯片检测到这个脉冲,就会 “重启”:清空临时寄存器、外设回归默认配置、程序指针跳回开头重新执行。
  • 原理简化
    芯片内部有 “复位电路”, NRST 变低电平时,触发复位逻辑,把系统 “擦除” 回刚上电的状态,就像电脑按了重启键,所有临时数据清零、程序重新加载。

6)中断模式:“引脚会‘主动喊芯片干活’”
  • 上升沿、下降沿是啥
    类比:把引脚电平变化想象成 “开关灯”:

    • 上升沿:灯从 “灭(0V)” 变 “亮(3.3V)” → 电平从低变高。
    • 下降沿:灯从 “亮(3.3V)” 变 “灭(0V)” → 电平从高变低。
  • 中断咋工作
    你可以设置引脚 “监测上升沿 / 下降沿”,比如:

    • 接一个按键,按下时引脚从 3.3V 变 0V(下降沿)。
    • 芯片监测到这个变化,就会 “暂停当前工作”,跳去执行 “中断服务程序”(比如点亮一个 LED 表示按键被按)。
    • 执行完后,再回到原来的工作继续跑。
  • 类比总结
    中断模式让引脚从 “被动监听”(比如输入模式要程序不停查电平)变成 “主动喊人”(电平一变,直接触发芯片响应),像 “快递员按门铃,你听到就去开门”,不用一直盯着门外(节省 CPU 资源)。

二、MPU6050

0)引脚功能详解(结合电路对应引脚)

引脚名电路连接 & 功能类比详细作用
VDD(13 脚)接 3.3V 电源(电路中 3.3V 供电)芯片的主电源正极,给整个 MPU6050 内部电路 “吃饱饭”,让它能干活。
GND(1、18 脚等)接地(电路中接系统地)电源负极,形成电流回路,相当于 “电路的下水道”,让电有去有回。
SCL(23 脚)经 R13(10K)上拉到 3.3V,连 SCL 总线I2C 通信的 “时钟线”,相当于两人聊天时的 “打节拍指挥”,让数据收发按节奏来。
SDA(24 脚)经 R12(10K)上拉到 3.3V,连 SDA 总线I2C 通信的 “数据线”,实际传加速度、角速度这些数据的 “通道”,像聊天的 “声带”。
VLOGIC(9 脚)接 3.3V(电路中 3.3V 供电)数字逻辑部分电源,给芯片里的通信、控制电路供电,保证 I2C 这些信号稳定。
AX_DA、AX_CL(6、5 脚等,电路中 NC)未接线(NC=No Connect)原本是加速度传感器的调试、测试引脚,这里不用,就 “空着”。
NC(14 - 17、2 - 4 脚等)未接线芯片预留引脚,电路里用不到,相当于 “备用接口”,设计时没接东西。
RESET(21 脚,电路中接电容到地)外接 C1(2.2nF)到地复位引脚,给电容充电放电时,能让芯片 “重启初始化”,像电脑的复位键,异常时恢复。
INT(12 脚,电路中 NC)未接线中断输出引脚,可配置成 “数据 ready 了就发信号”,比如采集完加速度就通知单片机。

一)通俗总结整个电路

  1. 供电:3.3V 电源从 VDD、VLOGIC 喂给芯片,GND 当回路,让芯片 “有电启动”。
  2. 通信:SCL、SDA 接上拉电阻,和外部单片机 “说人话(I2C 协议)”,传运动数据。
  3. 稳定:复位电容让芯片开机初始化,滤波电容让电源干净,保证芯片 “不抽风、稳定采集数据”。

二)电路原理拆解(从 “电怎么流动 + 干啥活” 讲)

把电路想象成 “给 MPU6050 搭的工作舞台”,各部分配合让它采集运动数据:

1. 电源部分:“吃饱电才能干活”
  • VDD(13 脚) + GND:3.3V 从 VDD 进去,从 GND 回来,给芯片整体供电,让内部传感器、逻辑电路 “活起来”。
  • VLOGIC(9 脚) + GND:单独给数字逻辑电路(比如 I2C 通信模块)供电,保证通信时信号干净,不会被模拟电路干扰。
2. 通信部分:“怎么把运动数据传出去”
  • SCL + SDA + 上拉电阻(R12、R13)
    • MPU6050 用 I2C 协议和外部单片机(比如 STM32)通信。SCL 是时钟,SDA 是数据
    • 上拉电阻(10K)的作用:I2C 总线默认是 “开漏输出”,需要上拉到 3.3V 才能稳定输出高电平(类比:水管要接个 “加压泵”,水才能稳定流过去)。
3. 复位 & 滤波:“让芯片稳定工作”
  • RESET 脚 + C1(2.2nF 电容)
    • 电容接在 RESET 和 GND 之间,通电时电容充电,会让 RESET 脚短暂处于低电平,触发芯片复位初始化(像给芯片 “拍一下肩膀说:准备好干活啦”)。
  • 电源滤波电容(C2、C4、C3)
    • C2(0.01μF)、C4(104 即 0.1μF ):靠近电源脚接小电容,过滤电源里的 “小波动”(比如其他电路干扰带来的电压抖动),让供电更干净。
    • C3(104 ):给 GND 和 VDD 滤波,进一步稳定电源。

三)“数据从哪来?”—— MPU6050 内部能干啥

芯片里集成了 3 轴加速度计 + 3 轴陀螺仪

  • 加速度计:感知设备 “加速、减速、倾斜”,比如手机放桌上歪了,能测出来。
  • 陀螺仪:感知设备 “旋转角度、角速度”,比如手环转手腕,能算出转了多少度。

这些数据通过 SDA + SCL 接口,以 I2C 协议传给外部单片机(比如 STM32),单片机再处理这些数据(比如做姿态解算、计步、防抖)。

    五、拓展

    一)上拉和下拉的概念
    • 上拉
      • 概念解释:上拉就是通过一个电阻(比如电路中的 R13 ,阻值为 10K ),将某个引脚连接到电源(这里是 3.3V 电源)。在电路中,当引脚处于高阻态(可以理解为引脚内部的电路断开,对外部信号不产生影响 )时,由于电阻的存在,引脚的电平会被拉高到电源电压(3.3V ),也就是让引脚默认处于高电平状态。
      • 类比理解:把引脚想象成一个可以控制水流的阀门,电源就像是一个大水缸,电阻则是连接阀门和水缸的水管。当阀门关闭(高阻态 )时,水管里有一定的水压,能让阀门这边的水位保持在和水缸差不多的高度(高电平 )。在 I2C 通信中,SCL 和 SDA 引脚采用开漏输出模式,需要上拉电阻才能保证在没有数据传输时,引脚处于高电平状态,这样才能正常进行数据传输
    • 下拉
      • 概念解释:下拉和上拉相反,是通过一个电阻将引脚连接到地(GND )。当引脚处于高阻态时,引脚的电平会被拉低到地电平(也就是 0V ),让引脚默认处于低电平状态。
      • 类比理解:还是用阀门来类比,这次水管连接的是下水道(地 ),当阀门关闭时,水管里的水会流向下水道,使得阀门这边的水位降低到和下水道一样(低电平 )。下拉电阻在一些电路中用于设置引脚的默认低电平状态,比如某些复位电路中可能会用到下拉电阻 。
    二)复位引脚连接电容到地的原理
    • 复位原理:在 MPU6050 芯片中,RESET 引脚接电容 C1 到地,利用了电容的充电特性。在通电瞬间,电容相当于短路(因为电容两端电压不能突变 ),此时 RESET 引脚的电平被拉低到地电平(0V ),这个低电平信号被芯片内部的复位电路检测到,就会触发芯片的复位操作,将芯片内部的各种寄存器、电路状态等恢复到初始状态。
    • 充电过程:随着时间推移,电源通过芯片内部的等效电阻(或者其他相关电阻 )对电容 C1 进行充电,电容两端的电压逐渐升高,当电容充电完成后,电容相当于开路,RESET 引脚的电平又会恢复到电源电平(3.3V ,如果芯片没有其他复位信号的话 )。这个短暂的低电平时间就足以让芯片完成复位初始化操作,就像轻轻拍一下芯片,让它 “清醒” 过来,准备开始正常工作。
    三)INT 引脚(12 脚,电路中 NC)
    • 引脚功能:INT 引脚是中断输出引脚。在 MPU6050 芯片中,当满足特定条件时(比如加速度或角速度数据更新完成 ),芯片可以通过这个引脚向外输出一个信号,通知外部的单片机(或者其他主控设备 )。这个信号可以是一个电平变化(比如从低电平跳变到高电平 ),主控设备检测到这个电平变化后,就可以知道 MPU6050 有新的数据准备好了,然后去读取数据。
    • NC 状态:在这个电路中,INT 引脚被标记为 NC(No Connect ,即未连接 ),这意味着在当前的电路设计中,没有使用 INT 引脚的中断功能。可能是因为不需要 MPU6050 主动通知数据准备好,而是采用轮询的方式(即单片机定时去查询 MPU6050 的数据是否更新 )来获取数据;或者是为了简化电路,减少不必要的连接,避免引入干扰等。
    四)电源滤波电容的工作原理
    • 滤波原理:电容具有 “通交流,隔直流” 的特性。电源中的波动(比如其他电路工作时产生的高频噪声 ,可以理解为电源上的 “小波纹” )属于交流成分,而稳定的电源电压是直流成分。滤波电容能够让电源中的交流成分通过电容流向地,而阻止直流成分通过,从而使得电源变得更加稳定、干净。
    • 不同电容的作用
      • C2(0.01μF )和 C4(0.1μF ):靠近电源引脚放置,主要用于滤除高频噪声。高频噪声的频率比较高,电容对高频信号的容抗比较小(容抗和频率成反比 ),就像一个 “高速通道”,能让高频噪声快速通过电容流向地,而不让它们影响到芯片的供电。可以把它们想象成 “筛子”,专门过滤掉电源里的 “小颗粒杂质”(高频噪声 )。
      • C3(0.1μF ):连接在 GND 和 VDD 之间,进一步稳定电源。它不仅可以滤除高频噪声,对于一些低频的电源波动也有一定的抑制作用。在电路中,当芯片工作状态发生变化(比如突然开始大量运算 ),电源电流会发生变化,可能会引起电源电压的微小波动,C3 可以在一定程度上缓冲这种波动,保证电源电压的稳定,就像一个 “小水库”,当电源电压有波动时,能起到调节作用 。
    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/258545.html

    相关文章:

  1. Proteus 8.17下载安装保姆级教程【2025最新版】附安装包
  2. Android Navigation 原理解析
  3. C++字符串的行输入
  4. 华为服务器的选型指南
  5. AI + 化学实验:从“黑匣子”到“显微镜”,人工智能如何让化学研究更聪明?
  6. TouchDIVER Pro触觉手套:虚拟现实中的多模态交互新选择
  7. day41/60
  8. OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)
  9. Springboot项目中使用手机号短信验证码注册登录实现
  10. Starrocks 低基数全局字典优化
  11. 【stm32】标准库学习——USART串口
  12. 攻防世界-MISC-MeowMeowMeow
  13. C++面试题(46)------滑动窗口的最大值
  14. vue 路由学习
  15. Python核心库Pandas详解:数据处理与分析利器
  16. 【最新实时目标检测YOLOv13添加PyQt可视化界面】
  17. 旁挂式集中转发AC基础配置
  18. 对手机屏中断路和短路的单元进行切割或熔接,实现液晶线路激光修复原理
  19. 《贵州棒垒球》有什么国家级比赛·棒球1号位
  20. Qt面试题汇总
  21. 集成 Odoo、n8n 与 Dify,实现智能业务流程自动化
  22. 通过环境变量管理多版本JDK8、11、17并安装idea编译器
  23. 第十节 新特性与趋势-CSS层叠规则升级
  24. WPF 几种绑定 (笔记)
  25. Docker 安装与配置 详解——AI教你学Docker
  26. 实物建模性能优化秘籍:如何将模型面数减少且保持质感
  27. 实现OFD转换PDF文件的实用方法
  28. 计算机基础和Java编程的练习题
  29. (LeetCode 每日一题) 2200. 找出数组中的所有 K 近邻下标 (双指针)
  30. CasaOS中Docker部署SyncThing结合Cpolar实现公网文件同步方案