嵌入式
基础知识
焊接常识
焊接温度
焊接温度的选择取决于多种因素,最主要的是使用的焊锡类型和焊接对象(元件和焊盘的大小)。目标是使用最低的有效温度来快速完成焊接。
含铅焊锡 (如 60/40 锡/铅):
- 熔点较低(约183°C)。
- 常见焊接温度范围:300°C - 350°C。
- 对于较小的元件和焊盘,可以使用较低的温度。对于需要快速传热的较大焊盘或接地层,可能需要略高的温度。
无铅焊锡 (Lead-free Solder):
- 熔点较高(通常在217°C - 227°C之间,取决于具体合金)。
- 常见焊接温度范围:350°C - 400°C 或更高。
- 由于熔点高,需要更高的温度来确保焊锡快速熔化并流动。
影响温度选择的因素:
- 焊锡类型: 这是最主要的决定因素。无铅焊锡总需要比含铅焊锡更高的温度。
- 元件和焊盘尺寸: 较大的元件引脚、较大的焊盘、连接到大面积敷铜(如接地层)的焊盘需要更多的热量才能达到焊接温度,因此可能需要更高的焊笔温度或更长的加热时间(但后者应尽量避免)。
- 焊笔头尺寸和类型: 粗大或扁平的焊笔头传热效率高,可能可以用相对低的温度。尖细的焊笔头传热效率低,可能需要更高的温度。
- 焊笔功率和温控能力: 功率大的焊笔回温快,能更好地保持温度。温控焊台能精确控制温度,是首选。
- 助焊剂的活性: 活性强的助焊剂有助于在较低温度下清除氧化物,改善流动性。
- 操作技巧: 熟练的操作者能在短时间内完成焊接,减少热量对元件的影响,可以选择稍高一点的温度来加速过程。
重要原则:
- 温度不能太低: 焊锡不会完全熔化,流动性差,容易形成冷焊点。
- 温度不能太高: 会导致焊笔头氧化、快速损耗;助焊剂过快挥发失去作用;可能损坏元件(特别是热敏元件)或电路板;可能使焊盘剥落。
- 目标是使用能让焊锡在几秒钟内**(通常不超过5秒)快速熔化、流动良好并形成光滑焊点的最低温度。
焊接步骤
- 加热烙铁。
- 给烙铁的焊笔头"上锡"。
- 这步非常重要,特别是在焊笔刚开机或清洁后。
- 用清洁器(湿海绵或金属丝球)清洁焊笔头上的残渣。
- 立即用焊锡丝接触焊笔头,让少量的焊锡熔化并均匀覆盖在焊笔头的尖端。
- “上锡"的作用:保护焊笔头不被氧化,同时增强热传导效率,让热量更容易传递到焊接点。上好锡的焊笔头是闪亮银色的。
- 放置元件:
- 将电子元件插入电路板对应的孔中或放置在焊盘上。
- 使用固定夹或第三只手固定好,确保元件不会移动。
- 加热焊接点:
- 这是焊接的关键!不要直接将焊锡丝放到焊笔头上。
- 用焊笔头同时接触元件引脚和电路板焊盘。
- 目的是将元件引脚和焊盘加热到焊锡的熔点上。
- 加热时间取决于元件大小、焊盘大小和焊笔温度,通常只需要几秒钟(3-5秒)。
- 送入焊锡:
- 当元件引脚和焊盘被加热到足够温度时,将焊锡丝接触到元件引脚和焊盘的交界处。
- 热量会从被加热的金属表面传递给焊锡丝,使其熔化并流动。
- 焊锡会因为表面张力,均匀地覆盖在引脚和焊盘上,形成一个光滑的、向上的锥形或圆顶形焊接点。
- 送入适量的焊锡即可,不要太多(形成球状)或太少(连接不牢)。
- 移开焊锡丝:
- 看到焊锡流动均匀、形成良好形状后,立即移开焊锡丝。
- 移开焊笔头:
- 紧接着移开焊笔头。
- 整个加热和送锡过程要快速,避免长时间加热损坏元件或电路板。
UART
Ubuntu系统
# 查看所有串口
dtoverlay -a | grep uart
# 编辑 /boot/firmware/config.txt
# 末尾添加,开启UART2-5
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5
# 重启后
ls -l /dev/ttyAMA*各个UART串口和GPIO的对应关系:
GPIO14 = TXD0 -> ttyAMA0
GPIO0 = TXD2 -> ttyAMA1
GPIO4 = TXD3 -> ttyAMA2
GPIO8 = TXD4 -> ttyAMA3
GPIO12 = TXD5 -> ttyAMA4
GPIO15 = RXD0 -> ttyAMA0
GPIO1 = RXD2 -> ttyAMA1
GPIO5 = RXD3 -> ttyAMA2
GPIO9 = RXD4 -> ttyAMA3
GPIO13 = RXD5 -> ttyAMA4设备
21VOC(空气质量传感器)
树莓派
ESP8266
WIFI开发板,有独立的MCU,可以直接写程序
- 烧录工具:espressif/esptool: Serial utility for flashing, provisioning, and interacting with Espressif SoCs
- 文档:Esptool Documentation - ESP8266 - — esptool latest documentation

VSCode + PlatformIO
- 安装VSCode。
- 随后安装PlatformIO插件。
- 过程中会需要安装python,他会安装到
~/.platformio/penv/Scripts/python.exe,过程中没挂代理的话自动安装platformio会失败,可以手动执行~/.platformio/penv/Scripts/python.exe -m pip install -U platformio
- 过程中会需要安装python,他会安装到
- 打开example程序,参照板子上的信息,应该要用
nodemcu2的固件,所以主要体现在.ini配置文件中,修改并保存之后,会自动去下载需要的依赖到~/.platformio中。
问题和解决办法
遇到写入之后可以正常执行,但是开启monitor之后,执行卡住,包括按reset也不起作用的情况。
原因分析: 串口的DTR/RTS信号线导致ESP8266被持续复位,为了实现“一键自动下载”功能,像NodeMCU这样的开发板在USB转串口芯片(如CH340或CP2102)和ESP8266芯片之间设计了一个特殊的电路。这个电路利用了串口的两个控制信号线:DTR (Data Terminal Ready) 和 RTS (Request to Send)。
- 下载时:PlatformIO (通过 esptool.py) 会以特定的时序来控制 DTR 和 RTS 信号,让它们去拉低ESP8266的 RESET (复位) 和 GPIO0 (启动模式选择) 引脚,使芯片进入下载模式。
- 打开串口监视器时:很多串口软件(包括PlatformIO的monitor)在打开串口时,会默认将 DTR 或 RTS 信号线设置为一个激活状态(通常是低电平)。
- 问题发生:在您的NodeMCU板上,这个被激活的信号恰好通过那个自动下载电路,持续地将ESP8266的 RESET 引脚拉低。 这就完美地解释了您观察到的所有现象:
- 程序卡住:芯片被持续按住复位键,CPU根本没有机会开始运行您的 user_init 代码。
- LED不亮:程序没运行,自然不会有闪灯。
- 按下板上的RESET键无效:因为 RESET 引脚已经被USB芯片通过电路牢牢地拉低了,您再用物理按键去接地(拉低)已经没有意义了。
解决办法: 需要告诉PlatformIO的串口监视器,在打开串口时不要去操作 DTR 和 RTS 这两个信号线。
[env:nodemcuv2]
platform = espressif8266
framework = esp8266-rtos-sdk
board = nodemcuv2
monitor_speed = 74880
; --- 添加下面这两行 ---
; monitor_dtr = 0:告诉串口监视器在连接时不激活(不改变)DTR线的状态。
; monitor_rts = 0:告诉串口监视器在连接时不激活(不改变)RTS线的状态。