1. 课程导入

各位同学,欢迎来到《GPIO电机驱动与UART串口上位机开发实战》的第一课。

做嵌入式开发这么多年,我见过太多人一上来就啃数据手册,结果焊好板子发现电机不转、串口乱码。说白了,硬件开发最怕的就是「基础概念没理清,工具没备齐」。这一章我们不急着写代码,先把地基打牢。

1.1 GPIO与UART:你每天都在用的两个外设

先聊聊GPIO。GPIO的全称是General Purpose Input/Output,通用输入输出口。你可以把它想象成芯片的「手脚」——要么输出高/低电平去控制LED、电机使能脚,要么读取外部电平来判断按键是否按下。

核心要点:GPIO只有三种状态——高电平、低电平、高阻态。驱动电机时,我们主要用推挽输出模式,电流驱动能力一般在几mA到20mA之间。直接驱动电机?不行,电流不够,必须加驱动芯片。

再说UART。Universal Asynchronous Receiver/Transmitter,通用异步收发器。我刚开始做项目时总觉得它很神秘,其实说白了就是两根线(TX、RX)加上共地,就能让两个设备聊天。波特率要一致,数据格式要匹配,就这么简单。

特性 GPIO UART
通信方式 并行(单线或多线) 串行(异步)
典型用途 控制LED、读取按键、电机使能 与PC通信、传感器数据上报
速度 取决于MCU主频,可到MHz级别 常用9600~115200 bps
抗干扰能力 一般,长线需加缓冲 较好,差分版本(RS485)更远

我的经验:调试UART时,先用逻辑分析仪看波形,别上来就怀疑代码。我曾经花了一整天查一个串口乱码问题,最后发现是TX和RX接反了——嗯,这种低级错误谁都犯过。

1.2 开发板选型:STM32 vs ESP32

选开发板就像选工具,没有最好的,只有最合适的。我两个平台都用过,说说我的感受。

  • STM32(以STM32F103C8T6为例):稳定、生态成熟、资料多。适合工业级应用,实时性好。缺点是WiFi/蓝牙需要外挂模块。
  • ESP32:自带WiFi+蓝牙,性价比极高。适合需要无线通信的项目,比如手机APP控制电机。缺点是ADC精度一般,低功耗模式稍复杂。

我个人习惯:如果项目只需要本地控制、对实时性要求高,选STM32;如果需要联网、远程监控,ESP32更省事。本课程会以STM32为主,但原理完全通用,ESP32用户也能跟着做。

对比项 STM32F103C8T6 ESP32
主频 72 MHz 240 MHz(双核)
GPIO数量 37个 34个
UART接口 3个 3个
无线功能 无(需外接) WiFi + BLE
开发环境 Keil / STM32CubeIDE Arduino IDE / ESP-IDF
参考价格 约15元 约25元

1.3 电机驱动模块:L298N与DRV8833

MCU的GPIO直接驱动电机?别想了,电流不够。我们需要驱动芯片来「放大」控制信号。

L298N:经典双H桥驱动芯片,能驱动两个直流电机或一个步进电机。最大电流2A,价格便宜(几块钱)。缺点是压降大(约2V),发热明显。我早期做智能小车用的就是它,皮实耐造,但效率确实不高。

DRV8833:TI出品,也是双H桥,但更现代。最大电流1.5A,压降小(0.4V左右),自带过流保护。体积小,适合电池供电的项目。我在一个便携式云台项目里用过,发热控制比L298N好太多。

避坑指南:我曾经在L298N的使能脚上直接接了5V,结果电机启动瞬间电流过大,把MCU的GPIO烧了。记住:驱动芯片的逻辑电源和电机电源一定要分开,共地但别共用电源轨。

参数 L298N DRV8833
驱动方式 双H桥 双H桥
最大电流 2A(每通道) 1.5A(每通道)
逻辑电压 5V 2.7V~5.5V
电机电压 5V~35V 2.7V~10.8V
保护功能 无 过流、过热、欠压
封装 MultiWatt15 QFN/TSSOP

1.4 所需工具清单

工欲善其事,必先利其器。下面是我建议你准备的东西,别买太多,够用就行。

  • 开发板:STM32F103C8T6最小系统板 或 ESP32-DevKitC
  • 电机驱动模块:L298N模块 或 DRV8833模块
  • 直流电机:2个,带轮子或编码器更好(N20电机不错)
  • 电源:12V/2A适配器(给L298N供电)或 7.4V锂电池(给DRV8833)
  • 杜邦线:公对公、公对母、母对母各20根
  • 面包板:830孔一块
  • USB转TTL模块:CH340G或CP2102,用于UART调试
  • 万用表:测电压、通断,必备
  • 逻辑分析仪:24MHz 8通道的就行,几十块钱,调试神器

省钱建议:逻辑分析仪可以先用示波器替代,但示波器贵。我建议买个便宜的USB逻辑分析仪,配合PulseView软件,抓UART波形、PWM信号完全够用。

1.5 本章知识体系

下面这张图帮你理清本章的核心脉络。别怕,后面每一章都会配这样的结构图。

第一章知识体系结构图 第一章:课程导论与硬件准备 GPIO与UART基础 GPIO:推挽/开漏/上拉 UART:TX/RX/波特率 开发板选型 STM32:稳定/实时/工业 ESP32:WiFi/BLE/性价比 电机驱动模块 L298N:大电流/压降大 DRV8833:高效/保护全 工具清单 开发板/驱动/电源/杜邦线 万用表/逻辑分析仪/USB转TTL

1.6 写在最后

这一章的内容偏概念和准备,可能有点枯燥。但相信我,后面每一章都会让你亲手写出能跑的代码、能转的电机、能通信的串口。硬件开发就是这样——前期准备越充分,后面踩的坑越少。