树莓派4 UART多串口配置与通信实战指南
1. 为什么树莓派 4 的 UART 值得单独拿出来聊树莓派 4 这块板子但凡你玩过一阵子大概率都会碰到一个绕不开的需求接一个串口设备。可能是 GPS 模块、可能是某款工业传感器、可能是和另一块单片机做点对点通信也可能是调试一个老设备的控制台。这时候你会发现树莓派 4 的 UART 配置和树莓派 3 相比变化不小尤其是那个默认分配给蓝牙的 PL011 硬件串口坑了不少人。我自己第一次在树莓派 4 上接串口模块的时候就是照着树莓派 3 的老教程改的/boot/config.txt结果折腾了大半天数据死活收不到。后来才发现树莓派 4 的 UART 映射逻辑和树莓派 3 不一样mini UART 和 PL011 的分配关系变了而且默认情况下 GPIO 14/15 上引出来的那个串口性能并不理想。这篇内容就是把我自己在树莓派 4 上做 UART 多串口配置通信的完整过程整理出来。核心要解决的问题有三个第一搞清楚树莓派 4 上 UART 的硬件资源到底是怎么分配的第二把主串口从蓝牙手里抢回来让 GPIO 上的串口变成稳定可用的 PL011第三在需要多个串口的场景下通过软件或硬件方式扩展出额外的串口通道并且保证它们能同时稳定工作。适合谁看如果你手上有一块树莓派 4想接串口设备但被各种教程绕晕了或者你已经跑通了单个串口但想同时接两三个串口设备做数据采集和转发那这篇内容应该能帮你省下不少试错时间。我会尽量把每一步为什么这么做讲清楚而不是只丢一堆命令让你抄。2. 树莓派 4 UART 硬件资源与映射关系拆解2.1 树莓派 4 上到底有几个 UART先把这个事情说清楚不然后面配置全是糊涂账。树莓派 4 的 SoCBCM2711内部其实有多个 UART 控制器但在实际使用中我们最常打交道的是两个PL011这是 ARM 体系里标准的硬件串口性能稳定波特率精度高带独立的 FIFO是真正意义上的“好串口”。mini UART这是树莓派早期为了省成本搞出来的一个简化版串口它的波特率依赖于 GPU 核心频率一旦 CPU 频率发生变化波特率就会飘导致通信不稳定。在树莓派 3 上PL011 默认是分配给蓝牙的GPIO 14/15 上引出来的是 mini UART。到了树莓派 4情况变了PL011 的分配逻辑做了调整默认情况下GPIO 14/15 上引出来的串口变成了 PL011而蓝牙则改用 mini UART。听起来好像是好事但问题在于树莓派 4 默认并没有把 PL011 完全释放给 GPIO而是通过一个设备树覆盖层overlay来管理这个映射关系。除此之外树莓派 4 还可以通过额外的 UART 控制器扩展出更多串口。BCM2711 支持最多 6 个 UART包括 PL011 和几个 mini UART 变体但这些额外的 UART 需要通过在/boot/config.txt里加载对应的 overlay 才能启用并且它们会占用特定的 GPIO 引脚。2.2 为什么默认配置下串口不好用很多人拿到树莓派 4直接在 GPIO 14/15 上接串口模块然后发现要么收不到数据要么数据乱码要么波特率稍微高一点就不稳定。原因主要有两个第一默认情况下树莓派 4 的串口控制台serial console是开启的。也就是说系统会把内核启动日志和登录终端绑定在这个串口上。你接一个外部设备上去系统会往上面吐一堆启动信息你的设备如果解析不了这些数据就会表现得很奇怪。更麻烦的是如果你往串口发数据可能会被系统当成登录命令来处理。第二虽然树莓派 4 默认把 PL011 分配给了 GPIO 14/15但蓝牙那边仍然占着一部分资源而且如果你没有显式地禁用 serial console 并启用 UART overlayPL011 可能并没有完全按照你期望的方式工作。我实测下来的经验是只要你要用 GPIO 上的串口做正经通信第一步永远是先把 serial console 关掉然后把 UART 的状态确认清楚再谈其他。2.3 多串口扩展的硬件基础树莓派 4 的 40 针 GPIO 里默认只有 GPIO 14TXD和 GPIO 15RXD这一组串口引脚。如果你想接多个串口设备有几种思路第一种是用 USB 转串口模块。这是最省事的办法插上去就多一个/dev/ttyUSBx不需要动 GPIO 配置。缺点是每个模块都要占一个 USB 口而且质量参差不齐的模块容易掉线。第二种是启用树莓派 4 额外的 UART 控制器。通过加载dtoverlayuart2、dtoverlayuart3之类的 overlay可以把其他 UART 映射到指定的 GPIO 引脚上。这样你就能在不占用 USB 口的情况下多出几个硬件串口。缺点是可用引脚有限而且不同 UART 的引脚分配是固定的需要提前规划好。第三种是用 I2C 或 SPI 转串口芯片比如 SC16IS752 这类双通道 UART 扩展芯片。这种方式可以扩展出多个串口但需要额外的驱动配置复杂度较高。我自己的项目里通常是第一种和第二种混着用关键设备走硬件 UART次要设备走 USB 转串口。这样兼顾了稳定性和灵活性。3. 单串口基础配置从零到能收发数据3.1 关闭 serial console 并释放 PL011不管你后面要不要搞多串口这一步都是基础。树莓派 4 默认会把串口用作系统控制台你必须先把这个功能关掉才能让串口完全归你的应用程序使用。具体操作分两步。第一步修改/boot/cmdline.txt把里面的consoleserial0,115200这个参数删掉。这个文件里所有内容都在一行你只需要找到那个参数连同前面的空格一起删掉就行。改完之后大概是这个样子consoletty1 rootPARTUUIDxxxxxxxx-02 rootfstypeext4 elevatordeadline fsck.repairyes rootwait第二步关掉串口登录服务。在树莓派 4 上通常是这两个服务在管这件事sudo systemctl stop serial-gettyttyS0.service sudo systemctl disable serial-gettyttyS0.service sudo systemctl stop serial-gettyttyAMA0.service sudo systemctl disable serial-gettyttyAMA0.service注意ttyS0和ttyAMA0这两个设备名在不同配置下会指向不同的 UART。树莓派 4 默认情况下ttyAMA0对应的是 PL011ttyS0对应的是 mini UART。你把 serial console 关掉之后这两个设备就都可以被应用程序打开了。提示改完/boot/cmdline.txt之后必须重启才能生效。重启后可以用cat /proc/cmdline确认一下参数是否已经去掉。3.2 启用 UART 并确认设备节点接下来要确保 UART 硬件本身是启用的。在/boot/config.txt里你需要确认或添加这一行enable_uart1这一行的作用是让固件在启动时初始化 UART 硬件。对于树莓派 4 来说加上这一行之后PL011 会被分配到 GPIO 14/15 上并且系统会创建对应的设备节点。重启之后你可以用下面这个命令来确认串口设备是否存在ls -l /dev/serial*正常情况下你会看到类似这样的输出lrwxrwxrwx 1 root root 5 Jan 1 00:00 /dev/serial0 - ttyAMA0 lrwxrwxrwx 1 root root 5 Jan 1 00:00 /dev/serial1 - ttyS0这里serial0指向ttyAMA0说明 PL011 已经分配给了 GPIO 上的串口。serial1指向ttyS0那是给蓝牙用的 mini UART。你要用的就是serial0或者直接操作ttyAMA0。3.3 用 Python 做一次回环测试配置确认没问题之后先别急着接外部设备做一次回环测试最稳妥。所谓回环测试就是把树莓派的 TXD 和 RXD 用一根杜邦线短接起来然后发什么就应该收到什么。硬件上用一根母对母杜邦线把 GPIO 14物理引脚 8和 GPIO 15物理引脚 10连起来。然后跑下面这段 Python 代码import serial import time ser serial.Serial( port/dev/serial0, baudrate115200, parityserial.PARITY_NONE, stopbitsserial.STOPBITS_ONE, bytesizeserial.EIGHTBITS, timeout1 ) test_data bHello UART ser.write(test_data) time.sleep(0.1) received ser.read(len(test_data)) print(fSent: {test_data}) print(fReceived: {received}) ser.close()如果一切正常你会看到发送和接收的数据完全一致。如果收到的数据是乱码或者为空那就要回头检查波特率、接线和 serial console 是否真的关掉了。注意回环测试用的杜邦线一定要插紧。我遇到过好几次因为接触不良导致数据时有时无的情况排查了半天以为是软件问题结果就是线松了。4. 多串口扩展配置与通信实现4.1 通过 overlay 启用额外硬件串口树莓派 4 的 SoC 支持多个 UART你可以通过在/boot/config.txt里加载 overlay 来启用它们。常用的几个 overlay 和对应的引脚如下OverlayTXD 引脚RXD 引脚设备节点uart2GPIO 4 (pin 7)GPIO 5 (pin 29)/dev/ttyAMA1uart3GPIO 8 (pin 24)GPIO 9 (pin 21)/dev/ttyAMA2uart4GPIO 12 (pin 32)GPIO 13 (pin 33)/dev/ttyAMA3uart5GPIO 16 (pin 36)GPIO 17 (pin 11)/dev/ttyAMA4要启用 uart2 和 uart3你只需要在/boot/config.txt末尾加上dtoverlayuart2 dtoverlayuart3重启之后用ls /dev/ttyAMA*就能看到多出来的设备节点。这里有个细节需要注意启用这些额外 UART 之后对应的 GPIO 引脚就不能再作为普通 GPIO 使用了所以在规划引脚的时候要提前留好余量。另外这些额外 UART 默认也是 PL011 类型的硬件串口性能比 mini UART 好得多波特率可以跑到 921600 甚至更高。我在一个数据采集项目里同时用了 uart2 和 uart3分别接两个传感器跑 460800 波特率连续工作几天都没有丢包。4.2 用 USB 转串口模块做灵活扩展如果你不想占用 GPIO 引脚或者需要更多串口USB 转串口模块是最直接的选择。市面上常见的芯片有 CH340、CP2102、FT232 等在树莓派 4 上基本都能免驱识别插上去就会多出/dev/ttyUSB0、/dev/ttyUSB1这样的设备节点。不过这里有几个实操经验值得分享。第一不同批次的 CH340 模块质量差异很大有些便宜的模块在高温或者长时间工作后会出现掉线建议关键场景用 CP2102 或 FT232 芯片的模块。第二多个 USB 转串口模块同时插上去时设备节点的编号可能会在重启后发生变化导致你的程序打开错误的串口。解决办法是通过 udev 规则给每个模块绑定固定的别名。写一条 udev 规则比如在/etc/udev/rules.d/99-usb-serial.rules里加上SUBSYSTEMtty, ATTRS{idVendor}1a86, ATTRS{idProduct}7523, ATTRS{serial}USB001, SYMLINKttySensorA SUBSYSTEMtty, ATTRS{idVendor}10c4, ATTRS{idProduct}ea60, ATTRS{serial}USB002, SYMLINKttySensorB这样不管系统怎么分配ttyUSBx你的程序始终可以通过/dev/ttySensorA和/dev/ttySensorB来访问对应的设备。idVendor和idProduct可以用lsusb命令查到serial属性可以用udevadm info查看。4.3 多串口并发通信的代码结构当你同时操作多个串口时代码结构就很重要了。最简单的做法是开多个线程每个线程负责一个串口的读写。但这里有个坑Python 的serial库在多个线程同时读写同一个串口时可能会出现数据竞争。所以原则是一个串口只由一个线程负责不同串口之间通过队列来交换数据。下面是一个简化的多串口采集框架import serial import threading import queue import time class SerialReader(threading.Thread): def __init__(self, port, baudrate, data_queue): super().__init__() self.port port self.baudrate baudrate self.data_queue data_queue self.running True self.ser None def run(self): self.ser serial.Serial( portself.port, baudrateself.baudrate, timeout0.1 ) while self.running: if self.ser.in_waiting 0: data self.ser.read(self.ser.in_waiting) self.data_queue.put((self.port, data)) time.sleep(0.01) self.ser.close() def stop(self): self.running False if __name__ __main__: data_queue queue.Queue() readers [ SerialReader(/dev/ttyAMA0, 115200, data_queue), SerialReader(/dev/ttyAMA1, 460800, data_queue), SerialReader(/dev/ttyUSB0, 9600, data_queue), ] for r in readers: r.start() try: while True: port, data data_queue.get() print(f[{port}] {data.hex()}) except KeyboardInterrupt: for r in readers: r.stop() for r in readers: r.join()这个框架的好处是每个串口独立运行互不干扰主线程只需要从队列里取数据做统一处理。如果你要做数据转发比如把 uart2 收到的数据转发到 uart3也只需要在队列消费端做判断和转发即可。提示in_waiting属性在部分 USB 转串口芯片上可能不准如果发现数据读取有延迟可以改用固定长度读取或者基于超时的读取方式。5. 常见问题排查与避坑经验实录5.1 串口数据乱码或收不到数据这是最常见的问题排查顺序建议如下排查项检查方法可能原因波特率确认双方一致最常见尤其是非标准波特率接线TXD 接 RXDRXD 接 TXD交叉接线不是直连地线确认 GND 已连接不共地会导致电平参考错误serial consolecat /proc/cmdline未关闭会干扰通信设备节点ls -l /dev/serial*指向了错误的 UART权限ls -l /dev/ttyAMA0当前用户不在 dialout 组权限这个问题特别容易被忽略。树莓派上默认用户是pi但如果你新建了用户或者用sudo跑程序可能会遇到权限问题。把用户加到dialout组就能解决sudo usermod -a -G dialout $USER改完之后需要重新登录才生效。5.2 高波特率下数据丢失如果你把波特率设到 460800 或更高发现数据偶尔丢失大概率是以下几个原因第一mini UART 的波特率精度不够。如果你不小心用的是ttyS0mini UART高波特率下必然不稳定。确认你用的是ttyAMA0或ttyAMA1这类 PL011 设备。第二CPU 负载过高导致串口缓冲区溢出。PL011 虽然有 FIFO但容量有限。如果你的程序读取不够及时数据就会丢。解决办法是提高读取线程的优先级或者用select/poll来监听串口事件而不是轮询。第三USB 转串口模块的芯片性能不足。有些便宜的 CH340 模块在 460800 下就会丢数据换 CP2102 或 FT232 就好了。5.3 多个串口同时工作时的资源冲突当你启用多个硬件 UART 时最容易碰到的问题是引脚冲突。比如你启用了uart2它占用了 GPIO 4 和 GPIO 5但你的项目里正好又需要用 GPIO 4 做其他事情那就冲突了。所以在项目规划阶段就要把引脚分配表列清楚。另一个问题是中断冲突。虽然树莓派 4 的多个 UART 有独立的中断线但在高负载下如果多个串口同时高速收发CPU 的中断处理压力会比较大。我实测下来同时跑三个 460800 波特率的串口树莓派 4 的 CPU 占用大概在 15% 到 20% 之间还算可以接受。但如果你还要跑其他重负载任务就要考虑降低波特率或者减少同时工作的串口数量。5.4 设备节点在重启后变化这个问题主要出现在 USB 转串口模块上。每次重启系统可能会以不同的顺序枚举 USB 设备导致/dev/ttyUSB0和/dev/ttyUSB1对调。如果你在代码里硬编码了设备节点就会打开错误的串口。解决办法前面提过了就是用 udev 规则绑定固定别名。这里再补充一个细节有些便宜的 USB 转串口模块没有唯一的序列号导致 udev 无法区分。这种情况下你可以通过 USB 物理端口号来绑定比如KERNELS1-1.2这样的属性。用udevadm info -a -n /dev/ttyUSB0可以查到完整的属性链。6. 多串口通信的进阶玩法与性能调优6.1 用 select 实现非阻塞多路复用如果你的串口数量不多而且不想开一堆线程可以用select或者poll来做单线程多路复用。Python 的select模块可以同时监听多个文件描述符哪个有数据就处理哪个。这种方式比多线程更轻量但代码结构会稍微复杂一点。import serial import select ports [/dev/ttyAMA0, /dev/ttyAMA1, /dev/ttyUSB0] sers [serial.Serial(p, 115200, timeout0) for p in ports] while True: readable, _, _ select.select(sers, [], [], 0.1) for ser in readable: data ser.read(ser.in_waiting) print(f[{ser.port}] {data.hex()})这种方式的优点是资源占用低缺点是如果某个串口的数据处理逻辑很耗时会阻塞其他串口的读取。所以适合数据量不大、处理逻辑简单的场景。6.2 调整串口缓冲区大小Linux 内核为每个串口维护了发送和接收缓冲区。默认情况下接收缓冲区可能只有 4KB 左右。如果你短时间内收到大量数据而应用程序读取不及时缓冲区就会溢出。你可以通过setserial或者直接写/proc来调整但更推荐的方式是在打开串口时设置rtscts硬件流控让硬件来控制数据流。如果设备支持硬件流控把rtsctsTrue加上能极大减少数据丢失的概率。不过要注意硬件流控需要额外的两根线RTS 和 CTS接线时要一并接好。6.3 长时间运行稳定性建议如果你的树莓派要连续跑几天甚至几周做串口通信有几个经验值得参考第一给串口读取线程加上异常捕获和自动重连机制。USB 转串口模块偶尔会因为电磁干扰或者供电波动而掉线程序要能检测到SerialException并尝试重新打开串口。第二定期检查串口设备是否还在。可以通过os.path.exists(/dev/ttyAMA0)来判断如果设备消失了说明硬件出了问题。第三日志要写清楚。每个串口的收发数据量、错误次数、重连次数都记录下来方便出问题的时候回溯。我一般会用 Python 的logging模块按天切分日志文件避免单个文件过大。第四供电要稳定。树莓派 4 对电源比较敏感如果同时接了多个 USB 转串口模块建议用质量好一点的电源适配器输出电流至少 3A。供电不足会导致 USB 设备频繁掉线表现就是串口时好时坏。6.4 一个实际的多串口数据转发场景最后分享一个我自己做过的场景树莓派 4 同时接了一个 GPS 模块走 uart29600 波特率、一个环境传感器走 uart3115200 波特率和一个老式控制器走 USB 转串口4800 波特率。树莓派需要把这三个设备的数据汇总然后通过 uart0 转发给另一块主控板。实现思路很简单三个读取线程分别采集数据统一放到一个队列里主线程从队列取数据加上时间戳和设备标识打包成固定格式通过 uart0 发出去。整个系统跑了一周多没有出现丢包或者死机。关键点在于每个串口的读取线程独立、队列做缓冲、发送端做流量控制。这个方案的可扩展性也不错如果以后要加第四个设备只需要再加一个读取线程和对应的串口配置就行主线程的逻辑基本不用动。

相关新闻

大模型指令微调实战:从LoRA选型到数据配比与避坑指南

大模型指令微调实战:从LoRA选型到数据配比与避坑指南

简介:这份PPT面向自然语言处理与大模型方向的学习者与开发者,系统梳理大模型指令微调(Instruction Tuning)的核心概念与整体脉络。内容从NLP四范式切入,依次讲解传统机器学习、深度学习、预训练加微调以及预训练加Prom…

2026/10/15 21:38:54 阅读更多 →
用友U9客户化开发实战:从环境搭建到热更新的完整链路

用友U9客户化开发实战:从环境搭建到热更新的完整链路

简介:本资源是面向用友U9生态伙伴及初阶客户化开发工程师的系统性入门学习资料,聚焦U9平台二次开发核心实践路径,解决从环境配置到UI/BE层开发落地的关键认知盲区。文档为单个817KB的Word(.docx)文件,内容结…

2026/10/15 21:38:54 阅读更多 →
ST语言编程手册:从语法图到避坑实践全解析

ST语言编程手册:从语法图到避坑实践全解析

简介:《ST语言编程手册》是一份系统介绍ST(Structured Text)语言编程知识的参考文档,面向工业自动化、PLC控制及机器人编程领域的技术人员与学习者。手册从ST语言的基本原理讲起,详细拆解语法图、字符组、标识符规则、…

2026/10/15 21:38:54 阅读更多 →

最新新闻

wow.js滚动触发动画原理与实战:IntersectionObserver轻量封装

wow.js滚动触发动画原理与实战:IntersectionObserver轻量封装

简介:这是一份轻量级网页滚动动画实现方案,面向前端初学者与网页设计师,解决网站静态内容缺乏视觉动效、用户交互体验平淡的问题。资源基于流行的wow.js库封装,通过CSS类绑定实现元素进入视口时的自动动画触发,支持淡入…

2026/10/15 22:26:22 阅读更多 →
手机日志分析实战:从Android底层采集到行为漏斗建模

手机日志分析实战:从Android底层采集到行为漏斗建模

1. 项目概述:从手机屏幕亮起的那一刻,数据就开始说话了 “大数据项目实践——手机日志分析”,这十个字背后不是PPT里的抽象概念,而是一整套可触摸、可验证、可复现的工程闭环。我带过三届某高校数据科学方向的实训项目&#xff0c…

2026/10/15 22:26:22 阅读更多 →
TensorFlow Lite边缘部署实战:模型量化与现场推理调优指南

TensorFlow Lite边缘部署实战:模型量化与现场推理调优指南

这个系列写到第三篇,终于要开始聊真正能在现场设备上跑起来的方案了。前两篇更多是把TensorFlow编程基础过了一遍,而这一篇要解决的问题很具体:当你在做一个边缘计算应用时,手里的算力不再是几百瓦的显卡,而是一块电池…

2026/10/15 22:26:22 阅读更多 →
康耐视扫码枪接线配置与参数调优实战指南

康耐视扫码枪接线配置与参数调优实战指南

简介:康耐视扫码枪使用说明书是一份面向产线调试、设备维护等现场工程师的PDF操作手册,系统讲解如何让扫码枪在物流、仓储、制造等场景下稳定准确地读取条码与二维码。文档从Dataman软件连接读码器入手,覆盖IP网段匹配、自动曝光关闭、曝光与…

2026/10/15 22:26:22 阅读更多 →
微信图文分享+App唤醒闭环实战:服务端重定向方案详解

微信图文分享+App唤醒闭环实战:服务端重定向方案详解

1. 项目概述:一次真实场景下的“图文分享App唤醒”闭环实践最近在帮某高校实验室做一套轻量级教学资源分发系统,核心需求很具体:老师在网页端编辑好一份带图解的实验操作指南,点击“一键分享”,内容要能以图文卡片形式…

2026/10/15 22:26:22 阅读更多 →
代码库变成书:AiReadCode从源码生成结构化阅读指南

代码库变成书:AiReadCode从源码生成结构化阅读指南

1. 为什么要做“代码库变成书”这件事先交代一个背景:有段时间我一直在啃 Spring AI Alibaba 的源码。这个项目体量不算夸张,但牵扯到模型接入、工具调用、Agent 编排、Spring 生态集成,读起来经常是“翻开一个类,跳转三个依赖&am…

2026/10/15 22:25:16 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →