STM32F407挂LAN9252跑EtherCAT从站开发实战:HBI接口、FSMC配置与状态机避坑指南
简介这份资源面向工业自动化与嵌入式开发方向的工程师及学习者围绕STM32F407微控制器与LAN9252以太网控制器协同实现EtherCAT HBI硬件总线接口展开可用于搭建实时以太网从站、理解协议栈移植与固件驱动开发。压缩包共494个文件约13.17MB以c与h源码、d依赖文件、o目标文件、crf交叉引用文件为主另含uvprojx、uvoptx等Keil工程配置、sct分散加载脚本、axf可执行文件及少量pdf、html说明文档构成一套可直接编译调试的完整工程。内容覆盖STM32外设接口配置、SPI/GPIO时序、HAL与LL库驱动、PDO/SDO映射、时钟同步及CRC错误检测等关键环节并附电路与配置资料便于对照理解底层通信与应用层控制逻辑。目前已有1753人学习下载适合需要参考完整EtherCAT从站实现、排查通信时序与协议栈问题的开发者。1. STM32F407 挂 LAN9252 跑 EtherCAT从站开发到底难在哪如果你手头有一块 STM32F407 的板子外加一颗 LAN9252 从站控制器芯片想把它们拼成一个能跑 EtherCAT 的从站设备那你大概率已经翻过不少资料了。这个组合在工业现场很常见STM32F407 主频 168MHz、带 FSMC 和大量 GPIO负责应用层逻辑LAN9252 负责 EtherCAT 协议栈的物理层和数据链路层处理两者之间通过 HBIHost Bus Interface主机总线接口通信。标题里的 “HBI” 正是关键——它决定了 STM32 怎么读写 LAN9252 内部的寄存器和过程数据内存。很多人卡住不是因为 EtherCAT 协议本身多玄学而是 HBI 的时序配置、中断处理和 PDI 类型选择没搞对导致从站要么进不了 OP 状态要么过程数据死活刷不进去。这篇笔记就按我实际调试的顺序把选型理由、接线方式、寄存器操作、状态机排查一条线讲清楚适合已经上手过 STM32、想啃 EtherCAT 从站的嵌入式工程师。2. LAN9252 的 HBI 接口选型与 STM32F407 硬件连接2.1 为什么 HBI 比 SPI 更值得优先考虑LAN9252 支持三种主机接口SPI、HBI也叫并行总线接口和 PDI 直连。SPI 接线少但速率受限通常跑 20MHz 左右每次读写都要走命令地址数据的串行帧过程数据刷新周期很难压到 1ms 以下。HBI 本质上是把 LAN9252 当成一个外部 SRAM 挂在 STM32 的 FSMC 总线上地址线和数据线分开读写一个 16 位寄存器只需要一个总线周期。对于 EtherCAT 从站这种要求周期通信的场景HBI 的确定性更好CPU 占用也更低。我一般会这样选如果从站只需要 1ms 以上的周期SPI 也能凑合但只要涉及分布式时钟同步或 500μs 以下的周期直接上 HBI别犹豫。STM32F407 的 FSMC 支持 SRAM/NOR 模式正好匹配 LAN9252 的 HBI 时序。2.2 硬件连线FSMC 地址线与 LAN9252 的对应关系LAN9252 的 HBI 接口有 16 位数据线 D0-D15以及若干地址线。实际使用中我们通常只用到少数几根地址线来区分寄存器组和过程数据 RAM。常见接法是STM32F407 引脚LAN9252 引脚说明FSMC_D0-D15D0-D1516 位数据总线FSMC_A0-A15A0-A15地址总线实际按需连接FSMC_NE1CS片选低有效FSMC_NOERD读使能FSMC_NWEWR写使能任意 GPIOIRQ中断输出接 STM32 外部中断任意 GPIORESET复位控制地址线的接法决定了寄存器偏移。比如 LAN9252 的 CSR 寄存器基址是 0x0000过程数据 RAM 基址是 0x1000。如果 A12 接在 FSMC_A12 上那么访问过程数据时地址就要加上 0x1000 偏移。这里容易翻车的地方是地址线接错位导致读写全乱。2.3 FSMC 初始化代码与关键参数下面是一段我用过的 FSMC 初始化代码基于 STM32 标准外设库风格HAL 库逻辑类似// FSMC 初始化将 LAN9252 映射到 Bank1 NOR/SRAM1 void LAN9252_FSMC_Init(void) { FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; // 时序参数根据 LAN9252 数据手册和 STM32 主频调整 p.FSMC_AddressSetupTime 2; // 地址建立时间单位 HCLK 周期 p.FSMC_AddressHoldTime 1; // 地址保持时间 p.FSMC_DataSetupTime 4; // 数据建立时间读写慢就加大 p.FSMC_BusTurnAroundDuration 1; p.FSMC_CLKDivision 0; p.FSMC_DataLatency 0; p.FSMC_AccessMode FSMC_AccessMode_A; FSMC_NORSRAMInitStructure.FSMC_Bank FSMC_Bank1_NORSRAM1; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType FSMC_MemoryType_SRAM; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_WrapMode FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive FSMC_WaitSignalActive_BeforeWaitState; FSMC_NORSRAMInitStructure.FSMC_WriteOperation FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode FSMC_ExtendedMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct p; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct p; FSMC_NORSRAMInit(FSMC_NORSRAMInitStructure); FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); }逻辑说明这段代码把 LAN9252 映射到 FSMC Bank1 的 NOR/SRAM1 区域基址通常是 0x60000000。之后就可以用指针直接访问比如*(volatile uint16_t *)(0x60000000 offset)。参数方面FSMC_DataSetupTime是最关键的LAN9252 的 HBI 读周期典型值在 40ns 左右STM32F407 在 168MHz 下 HCLK 约 5.95ns所以 4 个周期约 23.8ns如果通信不稳定就加到 6 或 8。FSMC_AddressSetupTime一般 1-2 就够但走线长的话也要适当加大。注意FSMC 的时序参数没有万能值必须结合 PCB 走线长度和 LAN9252 的时序要求来调。我习惯先用保守值跑通再逐步压缩。3. LAN9252 寄存器读写与 EtherCAT 从站状态机推进3.1 直接寻址与间接寻址CSR 和过程数据怎么访问LAN9252 内部有两块主要空间CSR 寄存器区0x0000-0x0FFF和过程数据 RAM0x1000-0x1FFF。CSR 里又分直接寄存器和间接寄存器。直接寄存器比如CSR_AL_STATUS、CSR_AL_CONTROL可以直接用 HBI 读写。间接寄存器需要通过CSR_CMD和CSR_DATA两个窗口来操作典型流程是先写地址到CSR_CMD然后读写CSR_DATA。过程数据 RAM 的访问更直接FMMU 配置好之后主站发来的输出数据会映射到某个偏移从站要读的输入数据放在另一个偏移。STM32 这边只需要按偏移读写即可。// LAN9252 基址假设 FSMC Bank1 映射到 0x60000000 #define LAN9252_BASE 0x60000000 #define LAN9252_CSR_OFFSET 0x0000 #define LAN9252_PRAM_OFFSET 0x1000 // 读 CSR 直接寄存器 uint16_t LAN9252_ReadCSR(uint16_t addr) { return *(volatile uint16_t *)(LAN9252_BASE LAN9252_CSR_OFFSET addr); } // 写 CSR 直接寄存器 void LAN9252_WriteCSR(uint16_t addr, uint16_t data) { *(volatile uint16_t *)(LAN9252_BASE LAN9252_CSR_OFFSET addr) data; } // 读过程数据 RAM uint16_t LAN9252_ReadPRAM(uint16_t offset) { return *(volatile uint16_t *)(LAN9252_BASE LAN9252_PRAM_OFFSET offset); } // 写过程数据 RAM void LAN9252_WritePRAM(uint16_t offset, uint16_t data) { *(volatile uint16_t *)(LAN9252_BASE LAN9252_PRAM_OFFSET offset) data; }逻辑说明这里假设地址线接法使得 CSR 和 PRAM 的偏移正好是 0x0000 和 0x1000。如果实际接线不同需要调整宏定义。参数方面volatile关键字不能省否则编译器优化可能把连续读写合并或删除。另外读写 16 位数据时要注意字节序LAN9252 是小端模式STM32 也是小端所以直接按 16 位访问即可。3.2 从 INIT 到 OP状态机推进的四个关键检查点EtherCAT 从站状态机从 INIT 到 OP 要经过 PreOP、SafeOP 几个阶段。每个阶段切换时主站会写AL_CONTROL寄存器从站需要在AL_STATUS里反馈当前状态。常见卡住的地方有四个第一AL_STATUS的STATE字段没更新。检查是否在状态切换后及时写入了新的状态值并且AL_STATUS_CODE没有错误码。第二SMSyncManager配置不对。每个 SM 通道的起始地址、长度、控制寄存器必须和主站扫描到的一致。如果 SM2 和 SM3 的配置和 ESI 文件描述不符主站会拒绝进入 SafeOP。第三FMMU 配置错误。FMMU 负责把逻辑地址映射到物理地址配置时要注意逻辑起始地址、长度、物理起始地址和读写类型。第四看门狗没喂。EtherCAT 从站有 SM 看门狗和 PDI 看门狗如果主站发来的过程数据没有及时处理看门狗超时会导致状态回退。// 检查并处理状态机切换的简化逻辑 void EtherCAT_StateMachine(void) { uint16_t al_control LAN9252_ReadCSR(CSR_AL_CONTROL); uint16_t requested_state al_control 0x000F; uint16_t current_state LAN9252_ReadCSR(CSR_AL_STATUS) 0x000F; if (requested_state ! current_state) { // 根据请求状态执行相应初始化 switch (requested_state) { case STATE_INIT: // 停止过程数据通信 break; case STATE_PREOP: // 配置 SM 和 FMMU break; case STATE_SAFEOP: // 启动输入数据通信输出保持安全值 break; case STATE_OP: // 启动输出数据通信 break; } // 更新 AL_STATUS LAN9252_WriteCSR(CSR_AL_STATUS, (LAN9252_ReadCSR(CSR_AL_STATUS) 0xFFF0) | requested_state); } }逻辑说明这段代码是状态机处理的骨架实际项目中还需要处理错误码、看门狗和中断。参数方面CSR_AL_CONTROL的低 4 位是请求状态CSR_AL_STATUS的低 4 位是当前状态。状态切换不是瞬间完成的主站会轮询AL_STATUS直到看到目标状态。3.3 中断与 PDI 看门狗的处理LAN9252 的 IRQ 引脚在发生事件时会拉低STM32 通过外部中断响应。常见事件包括SM 事件、EEPROM 加载完成、AL 控制写事件等。中断服务程序里要读CSR_AL_EVENT_REQUEST寄存器来判断事件类型然后清除对应位。PDI 看门狗是另一个容易忽略的点。如果 STM32 没有在约定时间内读写过程数据看门狗超时会导致从站退出 OP。我一般会在 1ms 定时器里喂狗同时检查过程数据是否有更新。// 外部中断服务程序处理 LAN9252 事件 void EXTI_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_LineX) ! RESET) { uint16_t event LAN9252_ReadCSR(CSR_AL_EVENT_REQUEST); if (event AL_EVENT_SM0) { // 处理 SM0 事件 } if (event AL_EVENT_SM1) { // 处理 SM1 事件 } // 清除事件标志 LAN9252_WriteCSR(CSR_AL_EVENT_REQUEST, event); EXTI_ClearITPendingBit(EXTI_LineX); } }逻辑说明中断里不要做耗时操作只做事件标记主循环再处理。参数方面CSR_AL_EVENT_REQUEST的每一位对应一个事件写 1 清除。注意清除时要写回读到的值避免误清其他事件。4. 避坑与常见问题排查4.1 读到的寄存器值全是 0xFFFF 或 0x0000现象上电后读CSR_AL_STATUS返回值不是预期的 0x0001 或类似值而是全 1 或全 0。原因FSMC 时序不对或者片选、读写使能接错。全 1 通常表示总线浮空全 0 表示没有实际驱动。解决先用示波器看 CS、RD、WR 和地址线的波形确认时序满足 LAN9252 要求。然后逐步加大FSMC_DataSetupTime从 4 加到 8 甚至 16。如果还是不行检查硬件焊接特别是数据线和地址线有没有虚焊。4.2 能进 PreOP 但进不了 SafeOP现象主站扫描到从站能切换到 PreOP但请求 SafeOP 时失败AL_STATUS_CODE报 SM 配置错误。原因SM2 或 SM3 的配置和 ESI 文件不一致。常见的是 SM 长度设错或者 SM 控制寄存器的方向位设反。解决对照 ESI 文件里的 SM 描述逐项检查起始地址、长度、控制字。SM2 通常是输出主站到从站SM3 是输入从站到主站。控制寄存器的 bit0-1 是操作模式bit2-4 是方向。4.3 过程数据刷新不同步现象进入 OP 后主站发来的输出数据从站能收到但从站反馈的输入数据主站读不到或者数据滞后。原因FMMU 配置错误或者过程数据 RAM 的读写偏移算错。解决检查 FMMU 的逻辑起始地址和物理起始地址映射。物理地址要对应到过程数据 RAM 的实际偏移。另外确认 SM3 的长度是否覆盖了所有输入数据。4.4 看门狗超时导致状态回退现象从站偶尔从 OP 掉回 SafeOP 或 PreOPAL_STATUS_CODE报看门狗超时。原因STM32 主循环阻塞太久没有及时喂狗或处理过程数据。解决把过程数据处理放在定时器中断或高优先级任务里确保周期稳定。喂狗操作要独立于其他逻辑不能因为某个函数耗时过长而漏掉。4.5 EEPROM 加载失败现象上电后CSR_EEPROM_STATUS报错误从站无法进入 INIT 之后的任何状态。原因EEPROM 里的 ESI 数据格式不对或者 I2C 通信失败。解决用 LAN9252 的 EEPROM 烧录工具重新写入正确的 ESI 文件。检查 I2C 上拉电阻和地址线确保 EEPROM 能被正常访问。5. 用分布式时钟和中断优化从站响应分布式时钟DC是 EtherCAT 实现高精度同步的关键。LAN9252 支持 DC但配置起来比基本状态机复杂。我一般会先跑通不带 DC 的版本确认过程数据能正常刷新再开启 DC。开启后主站会周期性发送 ARMW 命令来同步从站时钟STM32 这边需要读取CSR_DC_SYSTEM_TIME并写入偏移量。一个实用的技巧是把过程数据的读写放在 FSMC 中断里而不是主循环轮询。LAN9252 的 IRQ 可以配置为过程数据接收事件触发这样 STM32 能在数据到达的第一时间处理减少延迟。下面是一个简化的 DC 同步代码片段// 读取系统时间并计算偏移 void DC_Sync(void) { uint32_t system_time; uint32_t offset; // 读取 64 位系统时间分两次读 32 位 system_time LAN9252_ReadCSR(CSR_DC_SYSTEM_TIME_0); system_time | ((uint32_t)LAN9252_ReadCSR(CSR_DC_SYSTEM_TIME_1) 16); // 读取偏移量 offset LAN9252_ReadCSR(CSR_DC_SYSTEM_TIME_OFFSET_0); offset | ((uint32_t)LAN9252_ReadCSR(CSR_DC_SYSTEM_TIME_OFFSET_1) 16); // 根据偏移调整本地时钟 // 具体调整逻辑取决于应用需求 }逻辑说明DC 同步的核心是让本地时钟和主站时钟对齐。CSR_DC_SYSTEM_TIME是 64 位寄存器分两个 32 位读取。CSR_DC_SYSTEM_TIME_OFFSET保存了主站计算的偏移量从站需要把这个偏移量应用到本地时钟。参数方面DC 的同步周期通常和过程数据周期一致比如 1ms。如果同步不稳定检查CSR_DC_SYNC_ACTIVATED位是否置位以及CSR_DC_SYNC0_CYCLE_TIME是否配置正确。另一个技巧是使用 LAN9252 的 SYNC0 和 SYNC1 信号输出直接触发 STM32 的外部中断这样过程数据的处理可以和主站周期严格对齐。我习惯把 SYNC0 接到 STM32 的 TIM 输入捕获引脚用硬件定时器来测量周期抖动比软件轮询靠谱得多。最后说一个血泪教训调试 EtherCAT 从站时不要一上来就开 DC 和中断先把最简单的轮询模式跑通确认寄存器读写、SM 配置、FMMU 映射都没问题再逐步加功能。每次只改一个变量改完用主站工具看状态码。这样虽然慢但能避免一堆问题搅在一起分不清。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

基于Django的零食商城开发:从数据建模到上线部署实战

基于Django的零食商城开发:从数据建模到上线部署实战

做商城类项目的人很多,但能认真把“零食”这个细分品类吃透的并不多。讲道理,单纯套一套电商代码跑通并不难,难的是从商品建模、库存批次、订单流转到结算优惠这一连串环节,都能贴合零食生意的真实玩法。这篇文章就从一个具体项目…

2026/10/13 17:47:17 阅读更多 →
技术写作中的项目标题:从SEO到内容锚点

技术写作中的项目标题:从SEO到内容锚点

简介:面向YOLO等目标检测框架开发者的实际训练需求,这套VOC垃圾分类检测数据集提供了真实场景下高质量标注图片,可直接用于垃圾分类模型训练与验证。包内共58921个文件:jpg原图19640张、xml标签19640个对应VOC格式、txt标签19641个…

2026/10/13 17:47:17 阅读更多 →
虚拟校园Imagi逆势超募:教育科技寒冬下的确定性生意

虚拟校园Imagi逆势超募:教育科技寒冬下的确定性生意

1. 从450万美元超募说起:Imagi卖的可能不是你想的那个东西先聊一个反直觉的现象。2023年到2024年,整个EdTech(教育科技)赛道的融资环境有多冷,相信不需要我多解释。很多做在线教育、学习工具、课程平台的朋友&#xff…

2026/10/13 17:47:17 阅读更多 →

最新新闻

多智能体电梯群控:基于目的楼层预约与PPO的深度强化学习实现

多智能体电梯群控:基于目的楼层预约与PPO的深度强化学习实现

简介:本资源是一套面向计算机、人工智能、自动化等专业学生的毕业设计与课程设计实践项目,聚焦于多智能体协同下的电梯群控优化问题,采用深度强化学习实现目的楼层预约调度算法,解决传统电梯响应延迟高、能耗大、乘客等待时间长等…

2026/10/13 19:14:30 阅读更多 →
语义分割环境搭建:PyTorch CPU与GPU版本安装及验证全攻略

语义分割环境搭建:PyTorch CPU与GPU版本安装及验证全攻略

1. 系列前情回顾与本期核心目标语义分割学习系列写到第四篇,前面几篇我分别梳理了语义分割的基本概念、常见数据集的组织方式、以及几个主流分割模型的结构差异。按照正常的学习路线,理论铺垫到这一步,接下来就该动手了。动手的第一步就是装环…

2026/10/13 19:14:30 阅读更多 →
Spring Boot配置绑定实战:@ConfigurationProperties原理与避坑

Spring Boot配置绑定实战:@ConfigurationProperties原理与避坑

接触Spring Boot这些年,我做得最多的一个动作就是替同事定位“配置不生效”的诡异问题。排查到最后,十有八九都落在同一个注解上——ConfigurationProperties。它看起来只是给配置类加个前缀声明,实际牵扯到数据绑定、松散命名、第三方注册、…

2026/10/13 19:14:30 阅读更多 →
语义分割必备:PyTorch CPU/GPU版本安装全攻略

语义分割必备:PyTorch CPU/GPU版本安装全攻略

废话不多说,直接进入正题。这一篇是这个系列的第四篇,主题是很多人在语义分割学习中绕不过去的第一道坎——CPU和GPU版本的PyTorch及其环境安装。前几篇我们聊了语义分割的数据标注、模型结构、评价指标,但真正动手跑代码的时候,你…

2026/10/13 19:14:29 阅读更多 →
Java核心知识点全解析:从JVM到并发编程的底层原理

Java核心知识点全解析:从JVM到并发编程的底层原理

做Java开发这些年,我有一个很深的感受:真正拉开水平差距的,不是谁背的框架更多、API记得更熟,而是对底层那批核心知识点有没有吃透。所谓“Java重要知识点”,不是让你背八股文,而是帮你在遇到线上问题时&am…

2026/10/13 19:14:29 阅读更多 →
Go监听MySQL binlog实战:轻量级数据变更捕获与生产避坑指南

Go监听MySQL binlog实战:轻量级数据变更捕获与生产避坑指南

1. 这不是“监听MySQL”,而是重建一套轻量级数据变更管道很多人第一次看到“用Go监听binlog”这个说法,第一反应是:“MySQL自己不就有mysqlbinlog命令吗?再不济写个Python脚本调用一下不就完了?”——我试过&#xff0…

2026/10/13 19:13:29 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →