STM32CubeIDE新手入门:从零创建工程到点亮LED全流程详解
1. 项目概述为什么从新建工程开始如果你刚拿到一块STM32开发板或者从标准库、Keil MDK环境转过来面对STM32CubeIDE这个“庞然大物”第一步该做什么我的经验是不要一上来就研究复杂的HAL库函数或外设配置而是老老实实地学会“新建一个工程”。这听起来像一句废话但恰恰是很多新手栽跟头的地方。STM32CubeIDE集成了STM32CubeMX的图形化配置和基于Eclipse的IDE开发环境它的工程创建逻辑和传统的Keil或IAR有显著不同。一个正确建立的工程是后续代码编写、调试、下载乃至项目管理的基石。工程建错了后面可能连编译都过不了或者出现一些玄学问题比如代码下载了但没反应调试器连不上等等。这个“新建基础工程”的过程本质上是在完成三件事第一为你的MCU型号搭建一个正确的软件框架第二配置好最基本的时钟树让芯片能跑起来第三生成一个干净、可编译的初始代码工程并设置好调试和下载工具链。很多教程会跳过细节直接给你一个现成的工程文件但这就像学做饭只给你一盘成品菜你永远不知道火候和调料顺序。今天我就带你完整地走一遍这个过程把每一步背后的“为什么”讲清楚让你不仅能建出工程更能理解每一个配置选项的意义。2. 前期准备与环境要点在点击“New Project”之前有几项准备工作必须到位。这些准备工作能避免一半以上的安装和配置问题。2.1 软件安装与版本选择首先确保你从ST官网下载并安装了最新稳定版的STM32CubeIDE。安装过程基本是“下一步”到底但有几个关键点需要注意安装路径强烈建议使用全英文路径不要有空格或特殊字符。例如D:\STM32Tool\STM32CubeIDE就比C:\Program Files\STMicroelectronics\更好管理也避免了一些潜在的权限和路径解析问题。Java环境STM32CubeIDE基于Eclipse依赖Java运行环境JRE。安装包通常自带JRE一般无需单独安装。但如果启动时报Java相关错误可以尝试手动安装一个较新版本的JRE如Oracle JDK 11或OpenJDK 11并确保系统环境变量指向它。固件包管理STM32CubeIDE内置了STM32CubeMX的在线下载功能。首次使用或创建新型号MCU工程时IDE会提示下载对应的HAL/LL库固件包Firmware Package。请确保网络通畅并选择一个非系统盘、有足够空间的位置存放这些包通常几个G。我习惯在安装目录外单独建一个STM32Cube\Repository文件夹来统一管理。2.2 硬件连接与驱动确认工程最终要跑到板子上所以硬件准备同样重要。调试器驱动无论是ST-LINK、J-LINK还是DAP-LINK在连接电脑后都需要确认驱动是否安装正确。在Windows设备管理器中查看“端口COM和LPT”和“通用串行总线设备”里是否有对应的设备出现且没有黄色叹号。ST-LINK官方驱动通常随CubeIDE安装也可以从ST官网单独下载更新。板载电路确认了解你的开发板。核心是确认Boot引脚BOOT0/BOOT1的状态。对于大多数学习和开发场景需要将Boot引脚设置为从主Flash启动通常是BOOT0接低电平。如果Boot模式不对你辛苦下载的程序可能无法执行。有些板子通过跳线帽选择有些则默认已配置好这点需要查看你的板子原理图或用户手册。注意如果你使用的是核心板底板的形式务必确保核心板的供电电压如3.3V和底板的电平匹配并且所有电源引脚连接可靠。一个不稳定的电源是调试地狱的开始。3. 工程创建流程逐步拆解现在我们打开STM32CubeIDE开始创建第一个工程。我会把每一步的选项和背后的考量都解释清楚。3.1 启动IDE与工作空间设置启动STM32CubeIDE后首先会弹出一个对话框让你选择工作空间Workspace。工作空间是一个目录用来存放你所有的工程文件、IDE的元数据和临时文件。我建议为每一个大的学习主题或项目单独建立一个工作空间比如D:\STM32_Learning\GPIO_Training。这样做的好处是项目隔离管理清晰并且当你需要备份或分享工程时直接拷贝整个工作空间目录即可注意路径深度不要太深避免某些工具路径过长报错。3.2 核心工程配置详解点击File - New - STM32 Project工程创建向导就启动了。这里是核心环节。1. MCU/Board Selector芯片或开发板选择你会进入一个选择界面。这里有两种模式Board Selector开发板选择如果你使用的是官方评估板如NUCLEO-F103RB、Discovery系列等强烈建议在这里搜索并选择你的板子型号。选择Board的好处是IDE会自动为你配置好该板子上已连接的外部时钟源晶振、调试接口、LED、按键等硬件资源省去大量手动配置的麻烦非常适合初学者快速上手。MCU Selector芯片选择如果你使用的是自己设计的板子或第三方核心板则需要在这里根据你的芯片具体型号进行筛选。可以通过系列如STM32F1、产品线如STM32F103C8、封装、Flash/RAM大小等条件来定位你的芯片。2. 工程命名与路径设置点击“Next”后进入项目设置页面。Project Name给你的工程起个有意义的名字例如Blinky_LED。遵循驼峰命名法或下划线分隔避免中文和空格。Project Location默认会使用工作空间路径。你可以保持默认也可以点击“Browse”指定到工作空间内的一个子文件夹。我个人的习惯是在工作空间内为每个工程单独建一个与工程名同名的文件夹这样结构更清晰。其他选项Use default location通常勾选。Target Language选择C。Binary Type选择Executable可执行文件。Project Type这里有几个关键选项STM32Cube这是最常用、最推荐的选择。它会生成基于HAL库的完整工程包含.ioc图形化配置文件。Empty生成一个完全空的工程需要自己手动添加所有源文件和库。不推荐初学者。Makefile生成用于命令行编译的Makefile工程。适合高级用户或CI/CD集成。Target Firmware选择From STM32CubeMX.iocfile。这是我们进行图形化配置的入口。3.3 图形化配置.ioc初探点击“Finish”后IDE会自动生成工程框架并打开.ioc文件STM32CubeMX的配置文件。这个图形化界面是我们配置芯片外设和中间件的核心。首次打开可能会提示你安装或更新对应系列的固件包HAL库确认即可。在正式配置前我们先做两件最重要的事1. 引脚分配视图与功能搜索中间最大的区域是芯片的引脚图。你可以看到每个引脚当前被分配了什么功能如GPIO_Input, USART2_TX等。在左上角的搜索框Magnifying glass图标旁边你可以搜索外设名如USART2或引脚号如PA5相关引脚会高亮显示非常方便。2. 时钟配置Clock Configuration点击顶部的“Clock Configuration”选项卡这是整个工程的“心脏”。STM32的时钟树相对复杂但CubeMX让它变得直观。对于基础工程我们通常遵循一个简单路径选择时钟源如果你的板子有外部高速晶振HSE通常8MHz在RCC配置页的“High Speed Clock (HSE)”选择Crystal/Ceramic Resonator。同样如果有外部低速晶振LSE通常32.768kHz也选择对应选项。如果没有就使用芯片内部时钟HSI, LSI。配置系统时钟在时钟树图上找到PLL Source Mux选择你的高速时钟源HSE或HSI。然后配置PLL的倍频系数使得PLLCLK达到你想要的系统时钟频率例如对于STM32F103常用72MHz。最后将System Clock Mux的源选择为PLLCLK。总线时钟分频系统时钟SYSCLK会分频给AHB总线、APB1总线、APB2总线。APB1的最大时钟通常是36MHz对于F1系列APB2是72MHz。时钟树图会实时计算并显示各路径的时钟频率如果配置超频相应位置会显示红色警告必须调整。实操心得对于第一次创建工程如果只想点个灯其实可以暂时跳过复杂的时钟配置直接使用芯片内部的HSI8MHz或16MHz作为系统时钟源这样最简单一定能跑起来。等工程创建编译下载成功后再回过头来仔细研究时钟树配置到最高性能。4. 生成代码与工程结构解析图形化配置完成后即使你什么都没配只是检查了时钟就可以生成代码了。4.1 生成代码设置点击顶部菜单栏的齿轮图标或Project - Generate Code。在生成之前建议先进入Project Manager - Project页面检查一下“Toolchain / IDE”是否确实是STM32CubeIDE。然后进入Code Generator页面这里有几个重要设置Generated files勾选Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral。这意为着为每个外设生成独立的.c和.h文件。我强烈推荐这个选项它能让代码结构非常清晰每个外设的初始化代码和函数都放在独立的文件里方便管理和维护。如果不勾选所有初始化代码都会堆在main.c里非常臃肿。Copy all used libraries into the project folder建议勾选。这会把工程用到的HAL库源文件复制到你的项目目录中。这样做的优点是工程完全自包含不依赖IDE的全局库路径便于迁移和版本管理。缺点是会占用更多磁盘空间。对于学习和小项目勾选上更省心。Keep User Code when re-generating这个必须理解。CubeIDE在/* USER CODE BEGIN */和/* USER CODE END */注释块之间的代码在重新生成代码时会被保留。而之外的代码会被覆盖。因此务必把你自己的代码写在这些用户代码区之间4.2 工程目录结构详解点击“Generate Code”后IDE会自动生成代码并切换回C/C开发视图。我们来看看左侧“Project Explorer”窗口生成的工程结构你的工程名/ ├── Core/ │ ├── Inc/ // 用户头文件存放目录 │ │ ├── main.h │ │ └── ... │ ├── Src/ // 用户源文件存放目录 │ │ ├── main.c // 主函数 │ │ ├── stm32f1xx_it.c // 中断服务函数文件 │ │ └── ... │ └── Startup/ // 启动文件 (startup_stm32f103c8tx.s) ├── Drivers/ │ ├── CMSIS/ // ARM Cortex-M核心支持包 │ └── STM32F1xx_HAL_Driver/ // HAL库驱动源码 ├── .mxproject ├── .ioc // CubeMX图形化配置文件非常重要 └── 工程名.ioc // 通常是一个链接指向.ioc文件Core/Inc, Core/Src这是你主要编写应用程序代码的地方。main.c里的while(1)主循环就在这里。Drivers包含了CMSIS和HAL库的所有源码。如果你在生成代码时选择了“复制库到项目”那么这里就是完整的库文件如果没有这里可能只有链接或部分文件实际库在全局路径。Startup文件这个汇编文件定义了堆栈、中断向量表是芯片上电后执行的第一段代码。通常我们不需要修改它。.ioc文件这是工程的“灵魂”。双击它可以重新打开图形化配置界面。任何时候修改硬件配置如换一个引脚控制LED都应该先修改.ioc文件然后重新生成代码而不是直接去改main.c里的初始化函数。5. 编写第一个应用点亮LED工程建好了代码也生成了现在我们来点个灯验证整个流程是否通畅。假设你的开发板上LED连接在PC13引脚像很多NUCLEO板一样。5.1 通过.ioc文件配置GPIO在“Project Explorer”中双击.ioc文件重新打开配置界面。在芯片引脚图上找到PC13左键点击它。会弹出一个功能菜单选择GPIO_Output。此时左侧的“Pinout Configuration”窗口会多出一个GPIO的栏目。点击它在下方找到PC13的配置。配置GPIO模式GPIO output level初始输出电平设为Low低电平或High高电平取决于你的LED是低电平点亮还是高电平点亮共阳或共阴。通常NUCLEO板是低电平点亮这里先设High熄灭状态。GPIO modeOutput Push Pull推挽输出。GPIO Pull-up/Pull-downNo pull-up and no pull-down不上拉也不下拉。Maximum output speedLow。对于只是点灯低速即可有助于降低噪声和功耗。如果需要高速切换如PWM再改为High。配置好后再次点击“Generate Code”。IDE会问你是否需要重新生成点击“Yes”。此时它会自动在main.c的/* USER CODE BEGIN 2 */区域之前生成MX_GPIO_Init()函数并完成对PC13的初始化。5.2 在主循环中添加用户代码切换到Core/Src/main.c文件。找到main函数里面有一个while (1)无限循环。我们在/* USER CODE BEGIN WHILE */和/* USER CODE END WHILE */之间添加我们的闪烁灯代码。/* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); // 翻转PC13引脚的电平状态 HAL_Delay(500); // 延时500毫秒 /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */这段代码很简单每500毫秒调用HAL库的HAL_GPIO_TogglePin函数翻转一次PC13的电平从而实现LED的闪烁。HAL_Delay函数提供了毫秒级的阻塞延时。5.3 编译与构建点击工具栏上的“锤子”图标Build或按CtrlB进行编译。下方的“Console”窗口会输出编译信息。如果一切顺利最后会看到** Build Finished. 0 errors, 0 warnings. **如果有错误或警告需要根据提示信息逐一排查。常见错误包括头文件路径错误、语法错误、未定义的符号等。6. 调试与程序下载实战编译通过只是第一步把程序烧录到芯片并运行起来才是终点。6.1 调试配置Debug ConfigurationSTM32CubeIDE的调试配置相对自动化但了解其原理很重要。点击工具栏上的“虫子”图标旁边的下拉箭头选择“Debug Configurations...”。在左侧找到“STM32 Cortex-M C/C Application”下面应该已经有你的工程名对应的配置项。如果没有右键它选择“New Configuration”。主要检查以下几个选项卡Main确认“Project”和“C/C Application”是否正确指向你的工程和编译出的.elf文件通常在Debug或Build文件夹下。DebuggerDebug probe选择你的调试器类型如ST-LINK (OpenOCD)。Serial Number如果你连接了多个同型号调试器可以在这里选择具体的序列号。Interface选择SWDSerial Wire Debug这是最常用的两线调试接口。Speed (kHz)可以保持默认如果连接不稳定可以尝试降低速度如1000。Startup这里有一个关键选项Run to main()默认是勾选的。意思是调试器启动后会自动运行程序直到main()函数入口处暂停。这对于开始调试非常方便。点击“Apply”然后“Debug”。IDE会切换到调试透视图程序会暂停在main函数的第一行。6.2 基础调试操作在调试视图中你可以单步执行F5逐语句执行会进入函数内部。单步跳过F6逐语句执行但把函数调用当作一条语句不进入函数内部。恢复执行F8从当前暂停点继续运行程序。终止调试CtrlF2结束调试会话。查看变量在“Variables”窗口可以查看当前作用域内的变量值。查看外设寄存器在“Peripherals”窗口可以查看和修改芯片外设的寄存器状态这对于底层调试非常有用。6.3 程序下载无需调试如果只是想将程序烧录到芯片运行而不需要调试可以使用“Flash”功能。确保工程已编译成功。右键点击工程名选择Run As - Run Configuration。配置与Debug类似在“Main”选项卡确认好.elf文件。点击“Run”。或者更简单的方法是在编译成功后直接点击工具栏上的“Run”按钮绿色圆形播放图标旁边的下拉箭头选择“1 [你的工程名]”。程序会自动下载到芯片并运行。此时你可以断开调试器开发板将独立运行你的闪烁灯程序。注意事项有时下载会失败提示“Cannot enter debug mode”或“Target not found”。请按以下顺序排查1. 检查USB线是否连接可靠调试器指示灯是否正常。2. 检查开发板供电是否正常。3. 在Debug配置的“Startup”选项卡下尝试勾选“Reset and Delay (seconds)”并设置一个复位延迟。4. 检查Boot引脚是否处于正确的Flash启动模式。5. 尝试降低调试接口速度SWD Clock。7. 常见问题与深度排查指南即使按照步骤操作新手阶段也难免遇到问题。这里我总结几个高频问题及其解决方案。7.1 编译错误集锦错误stm32f1xx.h: No such file or directory原因编译器找不到芯片对应的头文件。这通常是因为工程路径包含中文或特殊字符或者固件包没有正确下载/链接。解决检查工程路径是否为全英文。在项目属性中右键工程 - Properties - C/C Build - MCU Settings确认“MCU Family”和“MCU Package”是否正确。可以尝试重新生成一次代码。错误undefined reference to ‘HAL_Init’等HAL库函数原因链接时找不到HAL库的实现。可能是在生成代码时没有正确复制或包含HAL库源文件。解决检查Drivers/STM32F1xx_HAL_Driver/Src目录下是否有对应的.c文件如stm32f1xx_hal_gpio.c。如果没有去.ioc文件的Project Manager - Code Generator页面确认勾选了“Copy all used libraries into the project folder”然后重新生成代码。警告function ‘HAL_Delay’ declared implicitly原因没有包含main.h头文件而main.h里又包含了stm32f1xx_hal.h。解决在你的用户.c文件开头务必加上#include “main.h”。7.2 下载与调试故障问题ST-LINK无法连接提示“Target voltage does not match”原因调试器检测到的目标板电压与预期不符。可能是板子没供电或者供电电压异常。解决确保开发板已通过USB或外部电源正常供电。用万用表测量一下VCAP/VDD等核心电源引脚电压是否在3.3V左右。问题程序下载成功但LED不亮排查思路硬件排查首先用万用表测量LED所在引脚如PC13在程序运行时的电压是否在高低电平之间变化。如果不变化可能是软件问题如果变化但LED不亮检查LED限流电阻、LED本身是否损坏、是否是共阳/共阴接法理解错误。软件排查在调试模式下单步执行观察是否能执行到HAL_GPIO_TogglePin这一行。检查.ioc文件中GPIO的配置是否正确模式、上下拉、速度。检查时钟配置是否正确如果系统时钟没配或配错了HAL_Delay的延时就不准可能闪得太快或太慢看不见。问题重新生成代码后自己写的代码不见了原因这是最常犯的错误没有把代码写在/* USER CODE BEGIN */和/* USER CODE END */注释对之间。解决CubeIDE重新生成代码时会覆盖这些注释对之外的所有代码。务必养成习惯只在这对注释中间添加或修改代码。如果不小心覆盖了可以从版本管理如Git中恢复或者手动备份。7.3 工程管理与维护技巧版本控制强烈建议使用Git管理你的STM32CubeIDE工程。将整个工程目录除了Debug/、Release/等构建输出目录纳入版本库。.ioc文件是文本文件非常适合做版本对比。在.gitignore文件中添加Debug/、Release/、.settings/等临时文件夹。多环境配置一个.ioc文件可以对应多个软件配置。例如你可以在Project Manager - Project里复制一个“Toolchain/IDE”配置一个用于生成CubeIDE工程另一个用于生成Makefile方便不同场景使用。代码复用当你有一个配置好的外设如UART、SPI想用在另一个工程时不要直接拷贝代码。更好的方法是在新工程的.ioc文件中配置相同的外设参数然后生成代码。或者使用CubeMX的“Project - Load Project”功能部分导入其他.ioc文件的配置。固件包升级ST会定期更新HAL库和中间件。可以通过Help - Manage embedded software packages来更新已安装的固件包。注意升级后旧的工程可能需要重新生成代码以适配新库有时会有API变化需要调整用户代码。新建一个STM32CubeIDE基础工程远不止是点击几下鼠标。它贯穿了从芯片选型、环境搭建、时钟配置、代码生成到编译下载的完整链条。每一步的选择都影响着后续开发的便利性和项目的稳定性。我建议你把第一个工程当作一个“脚手架工程”保存好以后创建新项目时可以复制它并在基础上修改能节省大量重复配置的时间。最重要的是多动手多试错遇到问题按本文的排查思路一步步来你会发现STM32CubeIDE这个工具链会越来越得心应手。

相关新闻

Unity Input System实战避坑指南:从核心原理到高频问题解决方案

Unity Input System实战避坑指南:从核心原理到高频问题解决方案

1. 项目概述:为什么我们需要关注Input System的“坑”?作为一个在Unity项目里摸爬滚打了十多年的老鸟,我见过太多团队在输入管理上栽跟头。从最早自己手搓Input.GetKey,到后来用各种第三方插件,再到Unity官方终于推出了…

2026/10/9 14:35:20 阅读更多 →
FastAPI 调用第三方接口 403 排查实战:从百炼 LLM 到 apimy.cn 学历验证

FastAPI 调用第三方接口 403 排查实战:从百炼 LLM 到 apimy.cn 学历验证

本文记录一个 FastAPI 项目(yujhg 后端)在接入「阿里云百炼 DashScope LLM」与「apimy.cn 学历验证接口」时,连续踩中的 6 个 403 / 400 坑,以及逐个定位、修复的完整过程。希望能帮到同样被 403 请求密钥KEY不正确、403 Workspac…

2026/10/13 9:32:22 阅读更多 →
从传递函数到设计调试:深入理解低通滤波器的核心原理与实践

从传递函数到设计调试:深入理解低通滤波器的核心原理与实践

1. 从“感觉”到“公式”:为什么我们需要理解低通滤波器的传递函数在电路设计、音频处理、控制系统,甚至是图像处理领域,低通滤波器都是一个绕不开的基础元件。我们凭直觉知道它的作用:让低频信号通过,阻挡高频信号。比…

2026/10/11 0:39:32 阅读更多 →

最新新闻

JDK1.8源码jar包制作与IDE关联调试实战指南

JDK1.8源码jar包制作与IDE关联调试实战指南

简介:JDK 1.8源码包完整收录了Java 8标准库的全部源代码,适合希望深入理解核心类库与并发模型的Java开发人员,也适合高校学生对照源码学习设计模式。借助这份包,可以在开发工具中直接打开并查看HashMap、ConcurrentHashMap、Strea…

2026/10/14 16:10:21 阅读更多 →
Android ViewPager2与BottomNavigationView双向联动实战避坑指南

Android ViewPager2与BottomNavigationView双向联动实战避坑指南

1. 这不是“套娃”,而是Android导航架构里最常被误用的联动模式你有没有遇到过这样的需求:一个页面顶部是TabLayout控制的横向滑动内容区,底部又有一排固定菜单按钮,点击底部菜单时,不仅切换底部选中状态,还…

2026/10/14 16:10:21 阅读更多 →
STK中文学习资料实战指南:从解压到跑通第一个场景

STK中文学习资料实战指南:从解压到跑通第一个场景

简介:这份STK中文学习资料包面向航天任务规划、遥感通信与导航领域的初学者及进阶用户,系统解决从软件入门到模块化应用的学习需求。包内共30个文件,以14份PDF教材为核心,辅以PPT讲义、GIF与BMP图示、DOC文档及XML、HTM等配置示例…

2026/10/14 16:10:21 阅读更多 →
MQTT在工业现场踩坑实录:4类场景慎用

MQTT在工业现场踩坑实录:4类场景慎用

把MQTT搬进工业现场这三年,我踩过的坑比调试时掉的头发还多。三年前给某电池厂做产线数据采集选型时,市面上主流的方案几乎都绕不开MQTT,当时我也被它的"轻量、异步、解耦"这几个词吸引,一股脑把几十台设备的工艺数据全…

2026/10/14 16:10:21 阅读更多 →
MQTT在工业现场的4个“不适合”场景与选型建议

MQTT在工业现场的4个“不适合”场景与选型建议

MQTT在工业现场用了3年,我总结的4个“不适合”场景1. 先说结论:MQTT在工业现场为什么会这么火,又为什么会被我拉进黑名单三年前上一家单位做产线数采改造,我作为通信方案负责人,一头扎进MQTT的怀里。那时候理由很充分&…

2026/10/14 16:10:21 阅读更多 →
The Nature of Code 极坐标与三角函数实战:用 sin/cos 在 p5.js 中绘制圆周、螺旋与任意形状

The Nature of Code 极坐标与三角函数实战:用 sin/cos 在 p5.js 中绘制圆周、螺旋与任意形状

教程文档示例工程 【免费下载链接】website-archive Archive of the Coding Train website (first version) 项目地址: https://gitcode.com/gh_mirrors/we/website-archive 点击查看 免费下载 本文以 website-archive 仓库中归档的《Trigonometry and Polar Coord…

2026/10/14 16:09:19 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/14 7:53:34 阅读更多 →