入门级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 了就发信号”,比如采集完加速度就通知单片机。 |
一)通俗总结整个电路
- 供电:3.3V 电源从 VDD、VLOGIC 喂给芯片,GND 当回路,让芯片 “有电启动”。
- 通信:SCL、SDA 接上拉电阻,和外部单片机 “说人话(I2C 协议)”,传运动数据。
- 稳定:复位电容让芯片开机初始化,滤波电容让电源干净,保证芯片 “不抽风、稳定采集数据”。
二)电路原理拆解(从 “电怎么流动 + 干啥活” 讲)
把电路想象成 “给 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 可以在一定程度上缓冲这种波动,保证电源电压的稳定,就像一个 “小水库”,当电源电压有波动时,能起到调节作用 。