ARM基础实验:从汇编启动代码到GPIO点灯的完整裸机开发指南
简介面向嵌入式初学者的ARM体系结构与汇编程序设计实验合集精选18个经典实验覆盖LED控制、UART串口、外部中断、直流/步进电机驱动、EEPROM读写、按键读取及指令系统验证等典型场景配合PDF详细实验说明与逐段注释代码可帮助读者建立ARM寄存器、中断机制与汇编编程的完整认知。压缩包共360个文件约10.58MB以C源码99个、头文件97个、汇编源文件27个与ADS工程文件26个mcp为主体另有axf、o等编译产物及PDF说明、实验图片便于对照工程结构理解编译流程代码注释详细实验步骤清晰适合初学者跟随练习。资源来自高校嵌入式实验室配套内容已有142人学习适合刚接触嵌入式、希望在真实工程脉络中巩固基础的同学深度学习者亦可借此回顾经典实验设计思路。1. ARM基础实验不跑系统反而什么都得自己写很多人觉得ARM基础实验就是嵌入式里最简单的那类入门无非是点灯、按键、串口打印。但等你真拿到一份包含C代码和汇编代码的完整实验资源刷过一遍就会意识到真正卡人的不是C语言逻辑而是那些看不见的汇编启动代码、寄存器地址映射和链接脚本。学这块内容的人目标通常很具体——搞懂上电之后CPU到底在干什么、中断向量表长什么样、C语言里的main为什么不是程序起点。这套ARM基础实验资源正好把这些环节串起来适合刚从单片机裸机转到ARM平台、或者想补上汇编基础的开发者。2. 工具链与工程骨架用 Makefile 把汇编和 C 编译到一块拿到资源包第一件事不是打开实验手册而是先把编译环境跑通。ARM基础实验的代码不能像桌面程序那样用系统gcc直接编译必须用交叉编译工具链因为目标平台是ARM内核而不是x86。这份资源里的实验代码通常分成startup汇编文件、main.c、链接脚本和Makefile四块弄清楚它们各自干什么后面调起错来才不会慌。2.1 交叉编译工具链安装与选型常见做法是安装开源的arm-none-eabi系列工具链它能编译裸机程序不依赖操作系统。在Linux环境下安装路径根据发行版不同略有差异但装完后一定要确认arm-none-eabi-gcc能跑起来arm-none-eabi-gcc --version arm-none-eabi-objcopy --version第一行看编译器和第二行看二进制转换工具是否正常。基础实验只需要这两个加上arm-none-eabi-gdb用于后面调试。工具链选型上我一般直接用gcc而不是Keil或IAR的命令行版本原因很简单gcc配合Makefile可以把汇编编译、C编译、链接和生成bin文件一条命令做完实验项目的工程结构也最容易被看清楚。Keil当然也能做但图形界面把启动代码和链接脚本藏得太深对想搞懂原理的人反而不友好。2.2 典型工程结构与 Makefile 解析一个标准的ARM基础实验资源包打开后大概率是下面这个文件结构我建议下载后先按表格核对一遍缺了某个文件后面会遇到各种诡异问题文件作用startup.s汇编启动代码定义中断向量表和Reset_Handlermain.c实验主逻辑比如GPIO点灯、按键扫描link.ld链接脚本指定代码段、数据段在Flash和RAM里的分布Makefile构建脚本把上面三个文件编译链接成bin文件实验手册接线图、寄存器说明和实验步骤Makefile是整个工程的粘合剂。一个最小可用的版本长这样CROSS_COMPILE arm-none-eabi- CC $(CROSS_COMPILE)gcc OBJCOPY $(CROSS_COMPILE)objcopy TARGET led_demo CFLAGS -mcpucortex-m3 -mthumb -Wall -O0 -g LDFLAGS -Tlink.ld -nostdlib OBJS startup.o main.o all: $(TARGET).bin $(TARGET).elf: $(OBJS) $(CC) $(LDFLAGS) -o $ $^ %.o: %.s $(CC) $(CFLAGS) -x assembler-with-cpp -c -o $ $ %.o: %.c $(CC) $(CFLAGS) -c -o $ $ $(TARGET).bin: $(TARGET).elf $(OBJCOPY) -O binary $ $ clean: rm -f *.o *.elf *.bin-CFLAGS里-mcpucortex-m3告诉编译器目标CPU内核-mthumb用Thumb指令集-O0关闭优化方便调试-g生成调试信息。-LDFLAGS里的-Tlink.ld指定链接脚本-nostdlib不链接C标准库的启动代码因为启动工作由startup.s自己完成。注意%.o: %.s这条规则用了-x assembler-with-cpp作用是在汇编代码里也能用宏定义和文件包含很多实验代码会在汇编里引用C头文件定义的地址没有这个选项直接报错。2.3 烧录与复位运行编译生成led_demo.bin之后烧录方式取决于手头开发板的调试器。无论哪种烧录前先确认设备是否被识别openocd -f interface.cfg -f target.cfg这个命令会启动一个调试服务进程interface.cfg描述调试器型号target.cfg描述目标芯片。启动成功后再开一个终端用GDB连接或者用配套的烧录脚本直接写bin文件。实际操作里烧录失败最常见的原因是接线松了或者调试器固件版本与OpenOCD不匹配跟代码本身没有关系。烧完别急着拔线紧接着做第6章的调试验证能省掉后面好几个小时的排查时间。3. 汇编启动代码上电第一行指令如何把控制权交给 mainARM基础实验和普通单片机开发最大的区别就是启动过程完全暴露在开发者面前。芯片上电后并不是直接跳到C语言入口而是先执行一段汇编代码完成栈指针设置、向量表建立、数据段搬运和BSS段清零最后才调用main。这段汇编代码写得好不好直接影响整个工程的稳定性也是个典型的黑匣子地带很多人点灯不亮根本原因就藏在这里。3.1 中断向量表程序启动的第一份数据向量表是芯片上电后首先读取的数据结构。Cortex-M内核的向量表固定放在Flash起始地址也就是链接脚本里FLASH ORIGIN指定的位置。向量表第一个32位字是栈顶地址第二个字是复位异常入口后续依次是各类异常和中断入口。一个教学简化版的向量表定义如下.section .isr_vector,a __Vectors: .word 0x20005000 栈顶地址指向RAM区域 .word Reset_Handler 复位异常入口 .word NMI_Handler 非屏蔽中断 .word HardFault_Handler 硬件错误异常 .section .text .thumb_func Reset_Handler: LDR R0, SystemInit BLX R0 LDR R0, main BLX R0 B ..section .isr_vector,a把向量表放到名为isr_vector的段里链接脚本会把这个段安排在Flash最前面。.word在汇编里表示一个32位常量所以向量表本质上是一组地址数据。Reset_Handler里通过LDR R0, main把main函数的地址加载到寄存器再用BLX R0跳转过去。注意BLX既能跳转又会切换指令集状态配合.thumb_func声明的函数入口保证C代码按Thumb模式执行。3.2 Reset_Handler 里到底干了什么实际工程的Reset_Handler比上面的教学简化版要复杂得多。芯片上电后默认时钟可能不是最终工作频率看门狗可能是开启状态C语言的全局变量还没从Flash拷贝到RAMBSS段的零初始化也没做。一个更贴近真实工程的启动流程包含这些步骤Reset_Handler: LDR R0, _estack 设置主栈指针 MOV SP, R0 BL SystemInit 时钟、看门狗、Flash延迟初始化 LDR R0, _sdata LDR R1, _edata LDR R2, _sidata BL CopyData 把.data段从Flash复制到RAM LDR R0, _sbss LDR R1, _ebss BL ZeroBss BSS段清零 BL main 进入C代码 B ._estack、_sdata这些符号由链接脚本生成不是随便写的。链接脚本里定义好RAM的起始地址和Flash中数据段存放位置汇编代码通过外部符号引用它们。CopyData和ZeroBss可以用汇编写循环实现也可以直接调用编译器提供的库函数。这样做的好处是main执行时所有全局变量已经处于可用状态不会出现某个变量值是随机数的玄学问题。3.3 汇编与C的互相调用规则汇编代码调用C函数时要遵循ATPCS调用约定。R0-R3传前四个参数R4-R11保存局部变量LR保存返回地址函数返回值放R0。上面启动代码里的SystemInit、main都不带参数所以直接用BLX R0跳转即可。如果C函数带参数就得先把参数放到R0-R3再跳转LDR R0, 0x01 LDR R1, 0x02 LDR R2, calc BLX R2 calc(0x01, 0x02)C代码里也可以反过来调用汇编函数只需在汇编里用.global导出符号比如.global delay_msC侧声明extern void delay_ms(int);就能直接调用。实验包里有些延时函数是用汇编写的C代码调用它们时要特别注意R0作为第一个参数以及在汇编里用PUSH保存LR因为BL指令会覆盖LR。4. GPIO 点灯从寄存器和库函数两侧看 C 代码怎么控制硬件点灯实验是所有ARM基础实验的起手式也是理解C代码如何操作寄存器的经典场景。和PC编程不同嵌入式C代码里没有操作系统帮忙管理硬件所有外设控制都是直接读写内存映射寄存器。这份资源里的点灯代码通常包含寄存器操作和封装两种写法对照着看更容易建立地址和硬件之间的映射关系。4.1 时钟使能为什么先于一切很多初次接触ARM的人拿到代码就去查GPIO方向寄存器结果配置半天灯就是不亮。问题出在漏掉了时钟使能。ARM芯片为了降低功耗大部分外设默认是不供时钟的GPIO模块没时钟时对它寄存器写的任何值都会被丢弃。所以在操作GPIO之前必须先在RCC时钟控制寄存器里把对应端口的总线时钟打开typedef volatile unsigned long reg32; #define RCC_BASE 0x40021000UL #define RCC_AHBENR (*(reg32 *)(RCC_BASE 0x14)) #define GPIOB_BASE 0x48000400UL #define GPIOB_MODER (*(reg32 *)(GPIOB_BASE 0x00)) #define GPIOB_ODR (*(reg32 *)(GPIOB_BASE 0x14)) int main(void) { RCC_AHBENR | (1UL 18); // 使能GPIOB时钟 GPIOB_MODER ~(3UL 10); // 清空PB5模式位 GPIOB_MODER | (1UL 10); // PB5设为输出模式 while (1) { GPIOB_ODR ^ (1UL 5); // 翻转PB5电平 delay(); } }代码里RCC_AHBENR的1UL 18是GPIOB时钟使能位具体位号要以芯片参考手册为准。GPIOB_MODER是模式寄存器每个引脚占2位PB5对应第10和11位所以先按位清除再置为01表示通用输出。GPIOB_ODR是输出数据寄存器对第5位做异或翻转就实现了电平切换。volatile关键字必不可少它告诉编译器这个地址内容随时可能被硬件改变禁止优化掉重复读取。4.2 delay 函数的正确写法与优化陷阱点灯循环里那个delay函数看起来不起眼写不好就是整个世界观的崩塌。如果用普通局部变量做循环计数开-O0还好一旦开优化编译器可能直接把循环删掉因为变量没被外部读取它认为这是死代码结果就是灯狂闪或者干脆不闪。正确写法是用volatile变量static void delay(unsigned long n) { volatile unsigned long i; for (i 0; i n; i); }加volatile之后编译器会保留这个循环每次迭代都真正执行加法比较。这种忙等延时精度不高但对点灯够用。实验里如果把延时函数从原来的5万改成50万闪烁频率会明显变慢这也能顺带验证代码确实在控制硬件。4.3 寄存器封装从裸地址到结构体指针直接写*(reg32 *)(GPIOB_BASE 0x00)可读性很差实验代码通常会封装成结构体把某个外设的一组连续寄存器映射成结构体成员。ARM芯片的GPIO寄存器组在地址空间上是连续排列的所以可以定义成这样typedef struct { reg32 MODER; reg32 OTYPER; reg32 OSPEEDR; reg32 PUPDR; reg32 IDR; reg32 ODR; } GPIO_Type; #define GPIOB ((GPIO_Type *)GPIOB_BASE) // 之后操作就变成这样 GPIOB-MODER | (1UL 10); GPIOB-ODR ^ (1UL 5);这种封装方式的优势是代码接近自然语言MODER、ODR这些名字和芯片手册一致查错时能直接对照手册看偏移。定义GPIO_Type时唯一要注意的是成员顺序必须和硬件寄存器地址偏移严格一致不能按喜好调整否则访问GPIOB-ODR时实际读写的是错误地址。这也是C语言里结构体与硬件映射最常见的翻车点。5. 避坑启动失败、点灯不亮和中断进不去的排查记录这个章节是血泪经验的集中区。ARM基础实验代码量不大报错和异常现象翻来覆去就那么几类但每一类都能卡住人好几天。下面这些坑是我和身边的人在实验里真实遇到过的按现象到解决写清楚你遇到同类问题时可以直接对照排查。5.1 复位循环跑飞main 根本进不去现象程序烧录后没有任何反应调试器连接时看到芯片不断复位PC指针跳到一个非法地址后又被拉回。单步执行发现中断向量表里的BEAB字样不对也就是栈顶地址或复位入口完全没有被正确映射。原因中断向量表第一个字必须是RAM区域的栈顶地址第二个字必须是Reset_Handler地址。如果链接脚本把isr_vector段放错了位置或者startup.s里.word Reset_Handler写的符号名与实际导出名不一致芯片上电后就会取到一个错误的PC值。还有一个常见原因是用arm-none-eabi-gcc编译时-nostdlib把编译器默认的启动文件也删掉了但汇编里还在调用__main导致符号缺失。解决先确认链接脚本里FLASH ORIGIN是不是芯片的实际Flash起始地址然后检查startup.s里的.global导出符是否完整。用arm-none-eabi-nm查看elf文件里的符号地址重点确认Reset_Handler是否位于向量表第二个word指向的位置。如果启动代码里写的是BL __main而你没链接C标准库启动文件把它改成BL main。5.2 点灯不亮但 GPIO 配置代码看起来完全正确现象ODR寄存器打了断点看到电平翻转了但LED就是没反应。用万用表量引脚电压要么恒定0V要么恒定3.3V完全不跟随代码变化。原因第一嫌疑是时钟没有真正使能。有的芯片RCC使能位写的是1UL 18但那是GPIOB的。如果你操作的是GPIOA却使能了GPIOB的时钟寄存器看起来在变实际外设根本不在工作。第二个原因是GPIO复用功能没改某些引脚默认接到调试口或其它外设直接当普通IO用需要先切换到GPIO模式。第三个原因隐蔽一些——你写的MODER寄存器地址是对的但用的是结构体封装成员顺序和芯片手册对不上读写位置全歪了。解决逐个检查RCC寄存器对应的端口使能位用调试器直接读寄存器值而不是只看代码。再把GPIO模式寄存器读回来确认写入的bit位确实变成了01。对可疑引脚查一下芯片手册的默认复用功能表必要时执行GPIOx-AFR | 0和GPIOx-MODER配合切换。5.3 链接报错 undefined reference to __main现象编译一路绿灯链接时突然冒出undefined reference to __main整个工程构建失败。网上搜到的帖子都在说Keil和GCC启动文件差异看完更懵。原因这是把Keil工程习惯带到gcc工具链的经典案例。Keil的启动代码习惯调用__main由ARM的C库完成数据段拷贝和BSS清零后再跳进main。而gcc工具链配合-nostdlib时C库入口不存在如果startup.s里还保留BL __main链接器自然找不到符号。实验包如果之前是用Keil写的转成gcc时这一步很容易漏改。解决把startup.s里的BL __main改成BL main并且在汇编文件顶部确保.global main。如果确实需要C库启动流程可以去掉-nostdlib链接标准库但要确认工具链版本里包含对应的ARM启动代码否则可能引入更多不确定行为。5.4 中断服务函数进不去标志位一直置1现象外设中断标志位已经置位主循环里查得到但中断服务函数就是不执行。单步调试进不去中断向量表里对应的地址也能看到看起来配置没问题最后发现是NVIC没使能或者使能了错误的中断号。原因中断能响应需要三级条件同时满足缺一不可。第一级是外设本身要产生中断事件第二级是NVIC的对应中断通道使能第三级是中断向量表里该中断号的入口地址正确。很多人只做了第一级外设中断标志置起来但NVIC的ISER寄存器没写1CPU根本不知道有这个中断请求。另一个坑是中断服务函数名和启动代码向量表里的符号拼写不一致编译期不会报错运行时不匹配静默失败。解决先把向量表里该中断对应的项和你写的函数名对齐用调试器x命令打印向量表看那个表项是否等于你函数的地址。然后检查NVIC_ISER对应位是否置1外设的Interrupt Mask寄存器有没有屏蔽中断。从GDB里用p/x *(unsigned long*)0xe000e100读NVIC使能寄存器注意偏移值因芯片而异不要照抄。6. 用 GDB 验证向量表与寄存器一次最小启动自检流程点灯实验跑通后别急着往下做串口和定时器先用调试器把启动流程完整验证一遍。这个自检流程花不了五分钟却能把启动代码、链接脚本和时钟配置一次性确认清楚。之后再做其它实验遇到问题心里就有底知道是应用逻辑的问题还是底层配置的问题。6.1 GDB 最小启动检查步骤启动OpenOCD后新开终端连接GDB按顺序做这几步arm-none-eabi-gdb led_demo.elf target remote localhost:3333 monitor reset halt x/8wx 0x08000000 b Reset_Handler c p/x $sp p/x $pcx/8wx 0x08000000是查Flash起始地址开始的8个字会看到第一个word是不是栈顶地址第二个word是否是Reset_Handler地址。在Reset_Handler打断点后继续执行$sp应该是0x2000开头的RAM地址$pc应该停在Reset_Handler第一条指令。接着检查GPIO时钟使能是否生效p/x *(unsigned long*)0x40021014 p/x *(unsigned long*)0x48000400第一行看RCC_AHBENR寄存器第二行看GPIOB_MODER。核对这两个值是不是和代码预期一致基本就能判断时钟和模式配置有没有落在正确的物理地址上。注意地址不能照抄不同芯片外设基址差别很大实验手册里的地址表才是唯一准确来源。6.2 把启动自检变成固定习惯从那以后我每次拿到新板子都会强制走一遍这套最小启动自检流程开GDB、加载elf、看向量表、停在Reset_Handler确认完SP和PC再往下执行。这十分钟的检查能过滤掉大半的玄学问题——至少保证启动是可控的、地址是正确的、程序确实在跑。点灯不亮时先怀疑寄存器地址拼写中断不进时先怀疑NVIC使能和符号名烧写无效时先做一次完整复位再查调试器连接。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

小功率锂电池组充电器设计:同步Buck拓扑与恒流恒压充电流程详解

小功率锂电池组充电器设计:同步Buck拓扑与恒流恒压充电流程详解

1. 方案定位:要给什么样的电池组充电先说清楚我们讨论的“小功率锂电池组”到底是什么量级。按我这些年的实际经验,小功率充电器通常指输出功率在5W到30W之间、电流在0.5A到3A左右的充电设备。对应的电池组可能是两串(7.4V)、三串…

2026/10/15 16:31:43 阅读更多 →
Unity跑酷游戏源工程拆解:场景、脚本与性能优化实战

Unity跑酷游戏源工程拆解:场景、脚本与性能优化实战

简介:这是一份完整的Unity跑酷小游戏源工程,适合正在学习Unity游戏开发的初中级开发者,用来系统掌握从场景搭建、角色控制到关卡循环的完整实现路径,也可作为课程设计或毕设项目的参考。压缩包共2000个文件,约22.39MB&…

2026/10/15 16:31:43 阅读更多 →
不迷信高价!3款万元内一线游戏本推荐,一线售后+顶配性能全有

不迷信高价!3款万元内一线游戏本推荐,一线售后+顶配性能全有

一、背景与核心观点一线游戏本(华硕、惠普、联想)相对二三线最大的优势是售后方便——大多数城市都有线下售后点,可第一时间现场处理,不像二三线需寄修,能节约时间成本,也降低快递造成的二次损坏风险。但一…

2026/10/15 16:31:43 阅读更多 →

最新新闻

Java易宝支付对接最小闭环:可运行、可调试、可替换的Spring Boot实战源码

Java易宝支付对接最小闭环:可运行、可调试、可替换的Spring Boot实战源码

简介:本资源是一套完整可运行的Java Web端易宝支付集成源码,面向Java Web开发初学者与支付功能实践者,解决第三方支付接口对接中的环境配置、参数组装、回调处理等典型问题。压缩包共36个文件,含5个核心Java业务类、5个Java工具类…

2026/10/15 17:22:35 阅读更多 →
微信小程序源码从跑通到改造:目录结构与避坑全流程

微信小程序源码从跑通到改造:目录结构与避坑全流程

简介:一套包含100个微信小程序源码的实战资料包,面向小程序入门开发者、前端学习者及需要项目灵感的工程师。源码覆盖了从基础语法到高级能力的完整链路:包括页面生命周期(onLoad、onShow、onHide)的调用时机、基于dat…

2026/10/15 17:22:35 阅读更多 →
ArchWSL 使用指南:基于 wsldl 在 Windows 上安装与多实例管理 Arch Linux(WSL 发行版)

ArchWSL 使用指南:基于 wsldl 在 Windows 上安装与多实例管理 Arch Linux(WSL 发行版)

开发者工具操作系统 【免费下载链接】ArchWSL ArchLinux based WSL Distribution. Supports multiple install. 项目地址: https://gitcode.com/gh_mirrors/ar/ArchWSL 点击查看 免费下载 ArchWSL 是一个基于 wsldl 与 README.md 为主体,结合 Makefile、…

2026/10/15 17:22:35 阅读更多 →
cefau3:AutoIt嵌入Chromium的轻量工业级方案

cefau3:AutoIt嵌入Chromium的轻量工业级方案

简介:cefau3是专为AutoIt3开发者打造的Chromium嵌入式框架封装库,面向Windows桌面自动化脚本编写者,解决传统AutoIt缺乏现代化Web界面能力的痛点,适用于开发带内嵌浏览器的GUI工具、网页交互型控制面板、本地化Web服务前端等场景。…

2026/10/15 17:22:35 阅读更多 →
AutomotiveSPICE V4.0过程模型重构与差距分析实战指南

AutomotiveSPICE V4.0过程模型重构与差距分析实战指南

简介:Automotive SPICE 4.0中文翻译版,是一份面向汽车电子/软件研发、过程改进与供应商质量管理的评估模型参考文档。PDF完整呈现过程参考模型与过程评估模型,先介绍适用范围、术语与符合性要求,再围绕主要生命周期(需…

2026/10/15 17:22:35 阅读更多 →
无人直播的素材库要攒多少条,才不会让观众看出循环

无人直播的素材库要攒多少条,才不会让观众看出循环

做无人直播最容易被观众看出来的一点,是素材在循环。同一条讲解反复出现,老观众几场就能记住,新观众也会觉得"怎么又是这一段"。素材库到底要攒多少条才够,这个问题有个相对明确的答案。先说结论:按单场开播…

2026/10/15 17:21:34 阅读更多 →

日新闻

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/14 16:30:29 阅读更多 →
影刀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 阅读更多 →