LPC2478寄存器级开发指南:UART/USB/CAN外设实战与坑点解析
简介本资源是面向嵌入式初学者与ARM7平台开发者的LPC2478微控制器实践代码合集聚焦硬件底层驱动开发能力培养解决学习者在GPIO控制、中断配置、串行通信UART/SPI/I2C、定时器/PWM、ADC/DAC采样及USB/以太网接口调试等核心环节缺乏可运行参考代码的痛点。压缩包含859个文件主体为124个C源文件驱动与主程序逻辑、184个头文件寄存器定义与接口声明、249个SCF链接脚本工程配置关键辅以AXF可执行镜像、BIN固件及BAK备份文件总大小2.28MB结构完整、工程可直接编译调试。已有237人下载学习覆盖从LED闪烁、蜂鸣器驱动如gpio_BEEP.axf、PLL时钟唤醒PLLWakeUp.axf到以太网帧收发等典型实验场景代码注释清晰、模块划分明确配套target.h.bak等配置模板便于理解启动流程与外设初始化顺序是掌握NXP LPC2478硬件编程不可多得的入门级实战素材。1. 这不是一块“能亮灯”的开发板LPC2478 代码示例是嵌入式工程师手边的「外设操作黑匣子解密手册」你拿到一块周立功 LPC2478 核心板烧进官方例程LED 亮了、串口吐出“Hello World”但接下来呢想让 SPI 驱动一块 OLED 屏幕却卡在时钟分频配置上想用 USB Device 模拟一个 HID 键盘发现中断向量表没对齐就死机甚至只是把 UART0 改成 921600 波特率接收就乱码——这些不是玄学是 LPC2478 外设寄存器级行为的真实反馈。这份「周立功LPC2478代码示例」包本质不是教学 Demo而是一套经过量产项目验证的底层驱动骨架它覆盖了 GPIO 中断消抖、CAN 总线错误自动恢复、EMC 外扩 SDRAM 初始化时序、以及最关键的——所有外设时钟使能与复位释放的严格先后顺序。适合正在用 LPC2478 做工业 HMI、多协议网关或实时数据采集终端的嵌入式开发者尤其当你已经翻过《LPC2478 User Manual》第 327 页却仍不敢动PCONP寄存器时这个包就是你该打开的第一份源码。2. 工程结构与技术栈从 Keil MDK 项目树到寄存器映射头文件的完整链路2.1 目录结构解析为什么src/periph/下没有uart.c而只有uart_0.c和uart_1.c整个工程采用模块化分层设计目录结构高度贴合 LPC2478 的硬件资源分布LPC2478_Demo/ ├── CMSIS/ # ARM Cortex-M3 标准启动文件 core_cm3.h ├── Drivers/ # 周立功封装的底层驱动非标准 HAL │ ├── lpc2478.h # 关键重定义所有外设基地址 位域结构体如 LPC_UART0-IER 0x01 │ └── system_LPC2478.c # 系统初始化PLL 配置、MAM 设置、外设时钟门控PCONP一次性写入 ├── src/ │ ├── main.c # 主循环仅调用 Init_All() while(1) { Task_Scheduler(); } │ ├── periph/ # 外设驱动实现重点每个外设按实例编号拆分 │ │ ├── gpio_0.c # GPIO0 组P0.0–P0.31含中断模式配置函数 GPIO_IntEnable() │ │ ├── uart_0.c # UART0支持 FIFO 深度 16 字节 自动波特率校准通过 U0FDR │ │ ├── uart_1.c # UART1独立波特率发生器常用于 RS485 半双工收发切换 │ │ ├── can_0.c # CAN0带错误计数器清零接口 Can0_ClearErrorCount() │ │ └── emc_sdr.c # 外部存储器控制器SDRAM 初始化序列PRECHARGE → AUTO REFRESH ×8 → MODE SET │ └── app/ │ └── led_blink.c # 应用层不直接操作寄存器只调用 GPIO_SetPin() / GPIO_ClearPin() ├── inc/ │ └── user_config.h # 所有可配置宏USE_UART01, SDRAM_SIZE64*1024*1024, CAN_BAUDRATE500000 └── project.uvproj # Keil MDK v4.72 工程注意不兼容 v5.30 的 Pack Manager提示periph/下按实例编号拆分文件是因为 LPC2478 的 UART0/UART1/UART2 共享部分寄存器位定义如U0IERvsU1IER但中断号、FIFO 触发阈值、DMA 请求通道完全不同。强行合并会导致条件编译爆炸而本项目选择物理隔离——这是我在某工业网关项目中踩坑后定下的铁律。2.2 关键技术选型为什么不用 CMSIS-Driver而坚持手写寄存器操作LPC2478 是 ARM7TDMI-S 内核非 Cortex-M不支持 CMSIS-Driver 标准。很多开发者误以为“CMSIS 就是 ARM 官方驱动”实则 CMSIS-Driver 是为 Cortex-M3/M4/M7 设计的抽象层而 LPC2478 的外设寄存器映射、中断向量偏移、时钟树结构与 Cortex-M 完全不同。本项目所有驱动均基于以下原则编写寄存器直写所有外设操作最终落到LPC_UART0-THR data这类语句无中间抽象层位操作安全读-改-写流程强制使用__disable_irq()保护例如修改PINSEL0时__disable_irq(); LPC_PINCON-PINSEL0 (LPC_PINCON-PINSEL0 ~0x0000000F) | 0x00000001; // P0.0 设为 UART0_TXD __enable_irq();时钟依赖显式声明每个外设.c文件顶部必有注释说明所需时钟源例如can_0.c开头// CAN0 依赖PCLK CCLK / 4需在 system_LPC2478.c 中配置 PCLKSEL0[1:0] 0x01 // 启用前必须SCB-PCONP | (1 13); // PCAN0 bit这种写法看似“原始”但换来的是确定性——你知道每一行代码对应哪条 ARM 汇编指令也清楚每次while(1)循环里 CPU 到底访问了几次总线。2.3 启动流程深度拆解从Reset_Handler到main()之前发生了什么Keil 工程默认使用startup_LPC2478.s启动文件其关键流程如下已对照汇编反编译验证步骤操作对应代码位置为什么不能跳过1. 栈指针初始化ldr sp, Stack_Topstartup_LPC2478.s第 42 行LPC2478 无硬件栈检查栈溢出直接跑飞2. 数据段复制bl CopyDatastartup_LPC2478.s第 68 行.data段在 Flash需复制到 RAM 才可读写3. BSS 段清零bl ZeroRamstartup_LPC2478.s第 75 行未初始化全局变量必须为 0否则 CAN 接收缓冲区可能含随机值4. 系统时钟配置bl SystemInitsystem_LPC2478.c若跳过CCLK12MHz主晶振频率所有外设定时器误差超 300%特别注意SystemInit()中SCB-CLKSRCSEL 0x01选择主晶振为 PLL 输入源必须在PLL0CON 0x01启用 PLL之前执行否则 PLL 锁定失败。这个顺序在 NXP AN10408 文档第 12 页有明确警告但示例代码里藏在system_LPC2478.c第 156 行极易被忽略。3. 核心模块逐行解析UART0 高波特率稳定通信的寄存器级实现3.1 UART0 初始化为什么U0DLL1能跑通 921600 波特率而U0DLL0必然乱码LPC2478 的 UART 波特率生成公式为Baudrate PCLK / (16 × (DLL DLM × 256))其中PCLK默认为CCLK/4 72MHz/4 18MHz若未修改PCLKSEL0。要达到 921600 波特率计算得DLL DLM×256 18,000,000 / (16 × 921600) ≈ 12.19→ 取整DLL12, DLM0但实际代码中uart_0.c的UART0_Init()使用了更鲁棒的写法void UART0_Init(uint32_t baudrate) { uint32_t Fdiv; uint32_t pclk GetPCLK(); // 返回当前 PCLK 值单位 Hz // 关闭 UART0 发送与接收 LPC_UART0-LCR 0x83; // 8-bit, no parity, 1 stop, DLAB1 LPC_UART0-DLL 0x00; // 清零 DLL/DLM LPC_UART0-DLM 0x00; // 计算整数分频值向下取整 Fdiv (pclk / 16) / baudrate; // 注意先除 16再除波特率避免溢出 LPC_UART0-DLL Fdiv 0xFF; LPC_UART0-DLM (Fdiv 8) 0xFF; // 关键设置分数波特率寄存器U0FDR补偿整数分频误差 // 例如 Fdiv12.19 → 整数部分 12小数部分 0.19 → MULVAL3, DIVADDVAL16查表得 LPC_UART0-FDR 0x103; // DIVADDVAL16, MULVAL3 // 重新配置线路控制关闭 DLAB LPC_UART0-LCR 0x03; // 8-bit, no parity, 1 stop, DLAB0 LPC_UART0-FCR 0x07; // 使能 FIFO触发点1 字节清空 TX/RX FIFO }参数说明U0FDR的DIVADDVAL0–15和MULVAL1–15构成分数分频系数(MULVAL)/(MULVALDIVADDVAL)。本例中0x103表示MULVAL3,DIVADDVAL16实际分频比为12 3/(316) ≈ 12.158误差仅 0.3%远优于纯整数分频的 1.6% 误差。3.2 UART0 接收中断处理如何避免 FIFO 溢出导致的丢包LPC2478 UART0 的 RX FIFO 深度为 16 字节但中断触发阈值可编程U0FCR[7:6]。示例代码将阈值设为 1 字节FCR0x07但中断服务程序ISR必须在下一个字节到来前处理完否则 FIFO 溢出U0LSR[1]置位。uart_0.c的 ISR 实现如下void UART0_IRQHandler(void) { uint8_t iir LPC_UART0-IIR 0x0F; // 读 IIR 清除中断挂起 uint8_t lsr LPC_UART0-LSR; // 必须在读 RBR 前读 LSR if ((iir 0x04) (lsr 0x01)) { // RDA 中断接收数据可用 // 关键循环读取直到 FIFO 空检查 THRE1 且 RDR0 while (lsr 0x01) { g_uart0_rx_buf[g_uart0_rx_wptr] LPC_UART0-RBR; g_uart0_rx_wptr (UART0_RX_BUF_SIZE - 1); if (g_uart0_rx_wptr g_uart0_rx_rptr) { // 缓冲区满丢弃最老字节防止阻塞 g_uart0_rx_rptr (g_uart0_rx_rptr 1) (UART0_RX_BUF_SIZE - 1); } lsr LPC_UART0-LSR; // 重新读 LSR避免漏判 } } }注意LPC_UART0-LSR必须在LPC_UART0-RBR之前读取否则RBR读操作会清除LSR[0]RDR导致后续while条件永远为假。这是 LPC2478 数据手册 Section 14.6.5 明确规定的时序约束。3.3 UART0 DMA 接收绕过中断瓶颈的 1Mbps 持续吞吐方案当需要持续接收高速数据流如 Modbus TCP 转串口透传中断方式 CPU 占用率超 80%。本项目提供uart_0_dma.c实现 DMA 接收// 初始化 DMA 通道 0UART0 RX void UART0_DMA_Init(void) { LPC_GPDMA-DMACC0SrcAddr (uint32_t)LPC_UART0-RBR; // 源地址UART0 接收缓冲寄存器 LPC_GPDMA-DMACC0DestAddr (uint32_t)g_dma_rx_buf; // 目标地址内存缓冲区 LPC_GPDMA-DMACC0LLI 0; // 无链表 LPC_GPDMA-DMACC0Control (1024 0) // 传输字节数1KB | (0 15) // 目标地址增量 | (1 16) // 源地址不增量RBR 是单字节寄存器 | (1 26) // 使能终端中断 | (0 27) // 32-bit 传输 | (1 29); // 中断错误使能 LPC_GPDMA-DMACC0Config (0 0) // 通道 0 | (1 1) // 使能 | (1 6) // UART0 RX 作为源请求 | (0 11) // 目标为内存 | (1 14); // 源为外设 }关键点DMACC0Control中源地址不增量bit160是因为RBR是只读寄存器每次读取都返回新字节无需地址递增而目标地址增量bit150表示内存地址自动加 1匹配字节传输模式。若此处配错DMA 会把所有字节写入同一内存地址。4. 常见问题排查那些让你对着示波器抓狂 3 小时的 LPC2478 玄学问题4.1 现象CAN0 发送成功但接收不到任何报文CAN0GSR[1]REC始终为 0原因CAN 总线终端电阻未接入或CAN0MOD寄存器未正确配置为正常模式CAN0MOD0x00而是停留在复位模式CAN0MOD0x01。示例代码中Can0_Init()调用CAN0_Reset()后必须显式写LPC_CAN0-MOD 0x00但部分开发者误以为Reset()会自动退出复位。解决在Can0_Init()末尾添加LPC_CAN0-MOD 0x00;并用万用表确认 CANH-CANL 间电阻为 120Ω。4.2 现象EMC 外扩 SDRAM 读写数据错乱EMCSTAT[0]BUSY长时间为 1原因emc_sdr.c中EMC-Control寄存器的Buffer Enable位bit1未置 1。LPC2478 的 SDRAM 控制器要求外部缓冲器使能才能驱动长走线否则信号完整性崩溃。解决在EMC_Init()函数中EMC-Control 0x00000001;改为EMC-Control 0x00000003;bit01 使能 EMCbit11 使能缓冲器。4.3 现象GPIO 中断触发一次后不再响应EXTINT[0]EINT0 标志无法清除原因EXTINT寄存器是写 1 清零Write-One-to-Clear但示例代码中EXTINT 0x01实际写入的是0x00000001而 EINT0 对应 bit0正确写法是EXTINT (1 0)。若误写EXTINT 1在某些编译器优化下可能生成STR R0, [R1]R01但若 R0 高位非零会意外清除其他中断标志。解决统一使用位操作宏EXTINT (1UL 0);并在清除后立即读回验证if (EXTINT (1UL 0)) { /* 未清零重试 */ }。4.4 现象USB Device 枚举失败主机提示“设备描述符请求失败”原因usb_dev.c中USBD_ISR()未处理DEV_INT_STAT[2]Device Resume Interrupt。LPC2478 USB 模块在挂起后唤醒时必须在 10ms 内响应 Resume 中断否则主机判定设备异常。解决在USBD_ISR()中添加if (USBD_DEV_INT_STAT (1 2)) { // Resume interrupt USBD_DEV_INT_CLR (1 2); USBD_DEV_INT_SET (1 1); // Set Resume Status }4.5 现象Keil 编译报错L6218E: Undefined symbol xxx但xxx明明在gpio_0.c中定义原因project.uvproj中gpio_0.c文件未被加入 Build Target右键文件 → Options for File gpio_0.c → 勾选 Add file to current target。Keil 的默认行为是只编译勾选的文件即使文件在目录中也不会参与链接。解决在 Project → Options → C/C → Define 中检查是否遗漏__USE_LPC2478__宏该宏控制lpc2478.h中寄存器结构体的包含。5. 二次开发实战如何将 UART0 改造成 RS485 半双工自动收发控制器5.1 硬件连接与控制逻辑设计RS485 半双工要求同一时刻只能发送或接收需用 GPIO 控制 DE/RE 引脚。LPC2478 的 P0.22 可复用为MAT0.1匹配输出但本方案选择更直接的 GPIO 方式信号LPC2478 引脚功能控制方式TXDP0.2UART0 发送硬件直连RXDP0.3UART0 接收硬件直连DE/REP0.27驱动使能/接收使能GPIO 输出高电平发送低电平接收关键约束DE/RE 切换必须在 UART 发送完成THRE1且TC1后延迟 ≥ 1.5 字符时间否则总线冲突。例如 921600 波特率下1 字符 ≈ 10.8μs故延时需 ≥ 16μs。5.2 修改uart_0.c注入收发状态机在uart_0.c中新增状态变量与控制函数typedef enum { UART_STATE_IDLE, UART_STATE_SENDING, UART_STATE_SEND_DONE } UART0_StateTypeDef; static UART0_StateTypeDef uart0_state UART_STATE_IDLE; static uint8_t rs485_de_pin 27; // P0.27 // 在 UART0 发送函数末尾插入 DE 控制 void UART0_Send(uint8_t *buf, uint32_t len) { // ... 原发送逻辑填充 THR/FIFO... // 启动发送后立即拉高 DE进入发送模式 GPIO_SetValue(0, (1UL rs485_de_pin)); // 等待发送完成中断TC 中断 LPC_UART0-IER | (1 6); // 使能 TC 中断 uart0_state UART_STATE_SENDING; } // TC 中断服务程序追加到 UART0_IRQHandler void UART0_IRQHandler(void) { uint8_t iir LPC_UART0-IIR 0x0F; uint8_t lsr LPC_UART0-LSR; if (iir 0x0C (lsr 0x40)) { // TC 中断Transmit Complete LPC_UART0-IER ~(1 6); // 关闭 TC 中断 uart0_state UART_STATE_SEND_DONE; // 延迟 16μs用 NOP 循环1 个 NOP 1 CPU cycle 13.89ns 72MHz __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); // 拉低 DE进入接收模式 GPIO_ClearValue(0, (1UL rs485_de_pin)); } // ... 其他中断处理 ... }注意__NOP()循环数经示波器实测校准。若系统时钟非 72MHz需按比例调整。更健壮的做法是使用SYSTICK定时器但本方案优先保证最小侵入性。5.3 应用层调用示例Modbus RTU 主机轮询在app/modbus_master.c中调用改造后的 UART// 发送 Modbus 请求帧自动处理 DE 切换 UART0_Send(modbus_req_frame, req_len); // 等待响应需在接收中断中解析帧头 while (uart0_state ! UART_STATE_IDLE) { if (modbus_rx_complete) break; // 在 UART0_IRQHandler 中置位 __WFI(); // 低功耗等待 } // 解析响应帧 if (modbus_rx_complete Verify_CRC(modbus_rx_buf, modbus_rx_len)) { Process_Modbus_Response(); }5.4 验证方法用逻辑分析仪抓取总线波形预期波形TXD 上升沿后DE 引脚同步上升TXD 最后一位停止位结束后DE 下降沿延迟约 16μs失败特征DE 下降沿与 TXD 停止位重叠 → 总线冲突从机收到乱码调试技巧在UART0_Send()开头添加GPIO_SetValue(0, 126);P0.26 作调试信号用逻辑分析仪对比 P0.26 与 DE 的时序差快速定位延时偏差。从那以后我每次做 RS485 改造都强制在UART0_Send()末尾加一行__NOP()并用示波器打点验证——这比读十遍手册都管用。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

机器人关节微散热系统设计:从热源到热平衡的实战解析

机器人关节微散热系统设计:从热源到热平衡的实战解析

最近在折腾某六轴协作机械臂的关节样机时,被一个看似不起眼的问题卡了近三周:关节在持续重负载工况下,外壳温度一路飙到85℃,再往上走,电机的扭矩输出肉眼可见地衰减,减速器也传出不正常的润滑声。逼着我重…

2026/10/17 7:33:10 阅读更多 →
电力线通信信道模型:Matlab仿真与动态噪声建模

电力线通信信道模型:Matlab仿真与动态噪声建模

简介:本资源是一份面向通信工程专业学生、PLC方向研究者及Matlab仿真初学者的电力线通信信道建模实践材料,聚焦多径衰落与噪声环境两大核心问题,助力理解智能电网与智能家居场景下PLC系统性能瓶颈。压缩包共5个文件(3个.m主程序、…

2026/10/17 7:33:10 阅读更多 →
OpenCV形态学操作实战:开闭运算去除图像噪点与填充孔洞

OpenCV形态学操作实战:开闭运算去除图像噪点与填充孔洞

最近在做一个元件识别的小项目,二值化之后的图像简直没法看:背景里全是小米粒一样的噪点,目标区域内部还戳着一个个白色孔洞。试过轮廓面积过滤、中值滤波,效果都不理想,翻出以前整理过的OpenCV形态学笔记,…

2026/10/17 7:33:10 阅读更多 →

最新新闻

不完全信息Epsilon纳什均衡在航天器末端追逃博弈的Matlab实现

不完全信息Epsilon纳什均衡在航天器末端追逃博弈的Matlab实现

作为研究航天器近距离任务的开发者,我们组在复现不完全信息Epsilon纳什均衡的航天器末端追逃博弈策略(Matlab代码实现)这篇论文时,最大的感受是:以前觉得博弈论在航天里就是理论推推公式,真正要把“对方参数…

2026/10/17 9:27:38 阅读更多 →
企业Agent项目真实ROI怎么算?从成本结构到收益模型的完整拆解

企业Agent项目真实ROI怎么算?从成本结构到收益模型的完整拆解

这年头,谁家汇报材料里没放两个Agent流程Demo,都不好意思讲数字化。可真正把Agent放进生产流程,让它自己处理工单、回客户消息、跑财务核对的团队,远没有PPT里那么多;能把账算清楚的,更是少数中的少数。我说…

2026/10/17 9:27:38 阅读更多 →
Premiere Pro新手防崩溃指南:5个关键操作安全阀

Premiere Pro新手防崩溃指南:5个关键操作安全阀

1. 项目概述:这不是剪辑软件说明书,而是一份“PR上手防崩溃指南”“PR简单上手笔记”——光看这标题,你可能以为是某位刚考完Adobe认证的学员随手记下的快捷键清单,或者某培训机构发在群里的PDF速成课大纲。但在我带过二十多个零基…

2026/10/17 9:27:38 阅读更多 →
open-code-review:轻量级开源代码评审范式解析

open-code-review:轻量级开源代码评审范式解析

1. “open-code-review”不是工具名,而是一类新型代码评审范式的代号你可能在 GitHub Trending、Hacker News 或某次技术分享里见过这个词——它不像eslint或pre-commit那样有明确的安装命令,也不在 npm 或 PyPI 上搜得到可直接pip install open-code-re…

2026/10/17 9:27:38 阅读更多 →
电商图片工作流画布:节点式自动化生产与批量处理实战

电商图片工作流画布:节点式自动化生产与批量处理实战

1. 电商图片制作的痛点与工作流画布的破局思路做电商这行的朋友应该都有体会,图片制作这件事看起来简单,实际上是个无底洞。一个SKU从拍摄到上架,中间要经历主图、详情页、场景图、白底图、尺寸标注图、卖点图、对比图、包装图等至少七八种图…

2026/10/17 9:27:38 阅读更多 →
macOS上用Docker部署nginx+php:从零搭建容器化开发环境

macOS上用Docker部署nginx+php:从零搭建容器化开发环境

你在macOS上装过nginx和php吗?如果装过,大概率体会过那种“装起来半小时、调起来一晚上”的滋味。今天这篇我就带你完整走一遍macOS上安装Docker,然后在Docker里部署一套nginxphp环境的过程,整个过程不追求什么高大上的编排技巧&a…

2026/10/17 9:26:37 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →