STM32 ADC中断不触发?从HAL库到寄存器的三步排查与配置指南
兄弟们这标题就是我最近几天的真实遭遇——STM32 Nucleo F446REHAL库ADC1开了中断结果IRQ handler就是不工作。具体表现是HAL_ADC_Start_IT()正常返回 HAL_OK程序跑起来也不崩但我在HAL_ADC_ConvCpltCallback里打的断点从来没停过。如果你也在处理 STM32 的 ADC 中断问题先冷静一下这问题大概率不是芯片坏了而是配置链路上某个环节被遗漏了。我这次把三层配置翻了个底朝天从 CubeMX 到寄存器逐位核对最终定位到问题所在。这篇就把排查思路、寄存器级调试方法和一套可复用的稳定配置一起整理出来适合刚用 HAL 库写 ADC 中断、或者遇到“中断不触发”又无从下手的开发者参考。1. 先说现场中断没反应的具体表现和我的环境板卡是 Nucleo-F446RE主控是 STM32F446RET6主频 180MHz。外设用的是 ADC1 的通道 0对应 PA0信号从一个电位器拉出来0~3.3V 的模拟量。软件环境是 STM32CubeMX 生成工程 HAL 库F4 系列 1.8.xIDE 用 STM32CubeIDE。需求其实特别简单ADC 单次转换转换完成后用中断通知CPU读取结果读完再启动下次转换。但实测现象非常典型HAL_ADC_Start_IT(hadc1)返回 HAL_OK没有任何报错。主循环正常跑LED 闪烁正常。在HAL_ADC_ConvCpltCallback里设置断点永远不会命中。如果改成轮询方式HAL_ADC_PollForConversion(hadc1, 100)又能读到ADC值说明 ADC 外设本身是工作的。这个组合拳打出来问题就很清楚了ADC 转换链路没问题问题出在中断相关的配置上。很多初学者到这里就开始怀疑 CubeMX 生成的代码有 Bug其实这恰恰说明调试方向要往中断链路上走。另外给个经验先确认 ADC 值是否正常。如果连轮询都读不到有效值那问题大概率出在模拟输入电路、ADC 时钟或引脚复用配置上而不是中断问题。我见过太多人一开始就在中断函数上死磕最后发现是引脚没复用对。先把这两个层面分开排查能省大量时间。2. ADC中断的“三道闸门”外设使能、NVIC、ISR路由从架构层面看STM32 的任何一个外设中断要从源头到达 CPU 并执行你的回调代码必须同时跨越三道门外设中断源使能、NVIC 全局中断使能、中断服务函数的正确路由。任一扇门没开中断都进不来。2.1 第一道闸门外设中断源使能对 ADC 来说ADC_SR寄存器里的 EOC 标志End of Conversion是中断的“请求源”。但这个请求能不能真正发出去取决于ADC_CR1寄存器里的 EOCIE 位。EOCIE0 时即使 EOC 置位了也不会产生中断请求。在 HAL 库里EOCIE 是在HAL_ADC_Start_IT()内部通过ADC_EnableIT这类底层函数打开的。也就是说你必须调用了HAL_ADC_Start_IT()EOCIE 才会被正确置位。如果只用了__HAL_ADC_ENABLE(hadc1)打开 ADC 电源却没有调用HAL_ADC_Start_IT()那 EOCIE 一直是 0中断自然出不来。2.2 第二道闸门NVIC 全局中断使能就算 ADC 内部产生了中断请求请求要真正进入 CPU还得靠 NVIC嵌套向量中断控制器放行。NVIC 要做两件事把对应的中断使能位写 1设置优先级。对应到 CubeMX 的 NVIC Settings 选项卡ADC1 对应的是ADC global interrupt必须勾选。如果这一项没勾HAL_ADC_Start_IT 不会帮你打开 NVIC——它只负责外设层不管 NVIC 层。这个属于“各人自扫门前雪”外设管外设NVIC 管 NVIC。2.3 第三道闸门中断服务函数的正确路由第三步是把“中断来了”这件事交给用户代码处理。startup_stm32f446retx.s 启动文件里给每个中断都定义了一个弱函数默认实现是死循环。中断向量地址和函数名的对应关系里ADC1 和 ADC2 共用同一个中断向量中断源函数名说明ADC1 和 ADC2ADC_IRQHandler在 stm32f4xx_it.c 里实现EXTI0EXTI0_IRQHandler如果 PA0 配成外部中断如果用户在代码里定义了ADC_IRQHandlerCPU 跳转时就会进你的函数如果没定义或者写错了名字就会跳到默认的死循环。这看起来就像是“中断没反应”实际上 CPU 已经进去转了只是出不来了。提示F446RE 的 ADC1 和 ADC2 共用一个ADC_IRQHandler中断向量。也就是说不管 ADC1 还是 ADC2 触发中断都会进入同一个函数。如果在项目里同时用了两个 ADC需要在同一个 handler 里分别调用各自的 HAL 处理函数或者根据状态寄存器判断具体是哪个 ADC 触发。3. 我踩过的三个隐藏坑从CubeMX到回调函数的连锁反应说回我自己的问题。把整条链路用调试器检查过一轮之后我发现“IRQ handler not working properly”不是某个单一原因造成的而是三个问题串在一起每个问题单独看都不致命合在一起就把中断完全卡死了。3.1 坑一EOCSelection 配置不对回调判断直接失败HAL 库的 ADC 结构体里有一个不太显眼的成员EOCSelection。CubeMX 里对应的是 Parameter Settings 中的 “EOC Selection” 选项取值可以是ADC_EOC_SINGLE_CONV单次转换结束或者ADC_EOC_SEQ_CONV整个序列转换结束。单通道模式下用ADC_EOC_SINGLE_CONV没有任何问题。但如果开了 ScanConvMode 扫描模式或者用了多通道HAL 库判断转换完成依赖的是序列结束标志。如果此时EOCSelection还保持默认的 SINGLEHAL_ADC_IRQHandler会认为当前不是预期的转换完成中断于是不调用任何回调。我当时就是在多通道扫描模式下EOCSelection 还配成 SINGLEADC 确实在不断转换、EOC 标志也在置位但HAL_ADC_ConvCpltCallback就是不执行。CubeMX 生成的代码不会替你判断这个逻辑必须自己去核对配置。3.2 坑二只调了一次 HAL_ADC_Start_IT后续中断没有重新触发F446RE 的 ADC 默认是单次转换。HAL_ADC_Start_IT会打开 EOC 中断并启动一次转换转换完成进入中断回调后如果不在回调里再次调用HAL_ADC_Start_IT下一次转换就不会发生。现象就是第一次中断后后续中断再也不来。对单次转换模式来说正确做法是在回调里读取数值后重新启动void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) { if (hadc-Instance ADC1) { adc_value HAL_ADC_GetValue(hadc1); HAL_ADC_Start_IT(hadc1); } }如果不想一直手动重启可以把ContinuousConvMode设为 ENABLE但这时候 EOC 中断会连续不断地触发回调里的处理逻辑不能做太多事情否则会严重影响主循环时序。我建议刚开始调试时用单次转换模式等中断链路跑通了再考虑连续模式或 DMA。3.3 坑三在回调里用了 HAL_Delay直接把自己卡死这个问题我见过很多次自己也踩过一次。ADC 中断优先级如果设置得比 SysTick 的优先级高注意 STM32 的优先级数值越小越高那么HAL_Delay在回调里是永远无法完成的——它在等 SysTick 的 tick但 SysTick 中断抢不过 ADC 中断于是死锁。表面上看程序好像停在中断里不回来了很多人会把问题误判成“ADC 中断处理函数卡死”。实际上就是中断优先级和 SysTick 冲突。解决办法有两种一是把 ADC 中断优先级调低比如设为 2 或 3低于 SysTick 优先级二是回调里不用 HAL_Delay改用简单的阻塞延时或标志位。一般项目里中断回调都要求快进快出不建议放任何延时操作。提示STM32F446RET6 的 SysTick 默认优先级在 HAL_Init 里通常配置为最低数值最大但 CubeMX 生成的代码也可能把 SysTick 优先级设为 0。最稳的做法是别在回调里依赖任何基于 SysTick 的延时函数。4. 寄存器视角用调试器一步步确认中断链路断在哪光靠看代码猜很多时候效率很低。我最后拿出最笨的办法在关键位置打断点逐个查寄存器。这个办法虽然土但定位问题非常可靠不会错过任何一个环节。4.1 断点该打在哪一层我一般会同时打三个断点在ADC_IRQHandler函数入口打一个断点。如果能停住说明 NVIC 和外设中断链路是通的问题出在 HAL 库内部的逻辑判断。在HAL_ADC_IRQHandler里打一个断点确认 HAL 库有没有被正确调用。在HAL_ADC_ConvCpltCallback里打一个断点确认最终回调路径。如果ADC_IRQHandler没停说明中断请求根本没到 CPU直接去查 NVIC 和 ADC_CR1 的 EOCIE 位。如果ADC_IRQHandler停了但回调没执行基本就是 HAL 库的标志判断逻辑不对优先检查 EOCSelection 和 ScanConvMode。这里有一个容易踩的盲区如果中断服务函数名写错比如写成ADC1_IRQHandler编译器不会报错链接器也能通过因为启动文件里那些弱定义函数和用户函数名字不冲突。结果是 CPU 跳进了默认的死循环函数表面看起来就是“断点打不上”。所以第一件事就是确认ADC_IRQHandler的拼写和启动文件里的向量名完全一致。4.2 现场检查SR、CR1、NVIC 寄存器逐位分析在调试器中挂起程序查看外设寄存器。先看ADC1-SR状态寄存器ADC1 的基址是 0x40012000Bit 1 是 EOC如果等于 1说明转换已经结束。Bit 5 是 OVR如果等于 1说明发生了溢出。此时 HAL 库可能会因为溢出状态进入错误处理流程而不是正常回调。再看ADC1-CR1重点看 Bit 5 EOCIE。如果是 0说明外设中断源没使能。手动测试时可以写入ADC1-CR1 | (1 5);然后观察中断能不能进来用来区分是外设层问题还是 NVIC 层问题。接着看 NVIC 相关寄存器。ADC_IRQn 在 STM32F446 上是 18对应NVIC-ISER[0]的 Bit 18。查看NVIC-ISER[0]的值如果 Bit 18 是 1说明 NVIC 层已经使能。我把这几项整理成了一张排查表调试时照着核对就行检查点寄存器关键位正常值异常处理方向转换完成标志ADC1-SRBit1 EOC1检查 ADON、采样时间、通道配置外设中断使能ADC1-CR1Bit5 EOCIE1调用 HAL_ADC_Start_IT 或手动置位NVIC 使能NVIC-ISER[0]Bit181CubeMX 勾选或 HAL_NVIC_EnableIRQ中断挂起状态NVIC-ISPR[0]Bit18可观察有挂起但 ISER 没使能会被静默丢弃4.3 一个容易误判的场景标志已置位但进不了中断调试中还遇到过一个特殊案例ADC1-SR的 EOC 标志位是 1EOCIE 也是 1NVIC 也配置了但中断就是进不来。最后发现是HAL_ADC_Start_IT被调用了两次。第一次启动的转换还没结束第二次调用又把 EOCIE 关掉了导致后续转换无法产生中断。这个场景在循环里启动 ADC 时特别容易遇到比如你在主循环里每 100ms 调用一次HAL_ADC_Start_IT而转换本身只需要几十微秒第二次调用时第一次转换已经完成看起来没问题。但如果你在某处不小心多调用了一次就会复现这种“标志都在、中断不来”的诡异情况。解决办法是查调用栈确认HAL_ADC_Start_IT的调用次数或者用状态机管理 ADC 的启动状态避免重复启动。5. 可直接复用的ADC中断配置从CubeMX到代码落地方案如果你只是需要一个能跑的方案这里给一份我实测过的完整配置。从 CubeMX 到代码每一步都列清楚。5.1 CubeMX 侧配置要点在 CubeMX 中打开芯片视图选择 ADC1勾选 IN0PA0作为转换通道。如果你用的是其他引脚选择对应的通道即可。Parameter Settings 里按下面这个推荐配置参数推荐值说明Clock PrescalerPCLK2/4保证 ADCCLK 不超过 36MHzResolution12-bitF446 原生 12 位精度和速度平衡ScanConvModeDisabled单通道模式多通道时再使能ContinuousConvModeDisabled单次转换配合中断重新启动EOC SelectionSingle Conversion单通道用这个多通道/扫描用 SequenceNbrOfConversion1对应通道数量NVIC Settings 里勾选ADC global interrupt这一步很容易漏。另外PA0 的 GPIO 模式需要配置为 AnalogCubeMX 在你勾选 ADC 通道后会自动设置但手动写代码时容易漏。5.2 完整代码实现初始化部分CubeMX 自动生成我加了注释static void MX_ADC1_Init(void) { ADC_ChannelConfTypeDef sConfig {0}; hadc1.Instance ADC1; hadc1.Init.ClockPrescaler ADC_CLOCK_SYNC_PCLK_DIV4; hadc1.Init.Resolution ADC_RESOLUTION_12B; hadc1.Init.ScanConvMode DISABLE; hadc1.Init.ContinuousConvMode DISABLE; hadc1.Init.DiscontinuousConvMode DISABLE; hadc1.Init.ExternalTrigConvEdge ADC_EXTERNALTRIGCONVEDGE_NONE; hadc1.Init.ExternalTrigConv ADC_SOFTWARE_START; hadc1.Init.DataAlign ADC_DATAALIGN_RIGHT; hadc1.Init.NbrOfConversion 1; hadc1.Init.DMAContinuousRequests DISABLE; hadc1.Init.EOCSelection ADC_EOC_SINGLE_CONV; HAL_ADC_Init(hadc1); sConfig.Channel ADC_CHANNEL_0; sConfig.Rank 1; sConfig.SamplingTime ADC_SAMPLETIME_84CYCLES; HAL_ADC_ConfigChannel(hadc1, sConfig); }GPIO 初始化部分确保 PA0 是模拟模式static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin GPIO_PIN_0; GPIO_InitStruct.Mode GPIO_MODE_ANALOG; GPIO_InitStruct.Pull GPIO_NOPULL; HAL_GPIO_Init(GPIOA, GPIO_InitStruct); }校准和启动部分放在主循环之前。F4 系列的 ADC 有一个校准步骤虽然不是中断必配项但不做的话初始偏移误差会偏大// 校准前需要先使能 ADC __HAL_ADC_ENABLE(hadc1); HAL_ADCEx_Calibration_Start(hadc1); // 校准完成后再启动中断转换 HAL_ADC_Start_IT(hadc1);中断服务函数放在 stm32f4xx_it.c 中void ADC_IRQHandler(void) { HAL_ADC_IRQHandler(hadc1); }回调函数放在 main.c 或单独的用户文件中volatile uint16_t adc_value 0; void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) { if (hadc-Instance ADC1) { adc_value HAL_ADC_GetValue(hadc1); // 在这里消费 ADC 值比如滤波、上报等 HAL_ADC_Start_IT(hadc1); } }这套配置跑下来PA0 的电压会周期性地进中断、被读取再触发下一次转换。5.3 进阶多通道 扫描模式 定时器触发如果项目里需要采集多路模拟信号推荐用“定时器触发采样 DMA 搬运 转换完成中断”的组合而不是让每个通道都触发一次中断。简单说架构定时器比如 TIM2产生触发事件让 ADC 启动扫描转换。ADC 在扫描模式下依次转换 N 个通道。转换结果通过 DMA 自动搬运到内存数组不需要每次 EOC 都打断 CPU。DMA 传输完成触发 DMA 中断一次性处理所有通道的数据。这样做的好处是 CPU 开销极小采样率稳定。缺点是配置复杂一旦出错也更难排查。我建议先把单通道中断模式跑通再上这个组合。如果你要处理的项目里涉及多通道务必回过头看前面说的EOCSelection那个坑扫描模式下它必须配成 Sequence否则 DMA 中断可能永远不触发。6. 经验复盘这些配置细节平时最容易忽略写到最后把自己这次踩坑换来的经验整理成几条。第一HAL 库虽然封装了很多细节但不代表可以忽略底层标志。ADC_IRQHandler不执行就直接去看NVIC-ISER[0]和ADC1-CR1的 EOCIE不要只盯着回调函数名。调试嵌入式问题寄存器永远是最有说服力的证据。第二中断服务函数名必须和启动文件里的向量名完全一致。弱定义默认死循环的坑非常隐蔽编译不报错、链接不报错但运行就是进死循环。写错了可以先看反汇编或者直接在启动文件的向量表附近下断点确认。第三回调里不能做耗时操作更不能用高优先级中断中依赖低优先级中断的函数。如果需要处理复杂逻辑在回调里只设置标志位或拷贝数据把耗时计算放到主循环。第四每次启动转换前确认上一次转换已经结束。HAL_ADC_Start_IT对同一通道重复调用不够友好最好用状态机或者返回值判断来管理启动流程避免重复启动导致 EOCIE 被异常关闭。第五ADC 的参考电压和输入范围也很关键。F446RE 的 VREF 通常是 VDDA也就是板上的 3.3V外部输入电压不能超过 VDDA。如果你确定中断已经触发但读数异常回去检查模拟输入电路别在软件里空转。如果你照着上面的完整配置跑通了可以在回调里加一个计数器用示波器或者串口观察中断触发频率确认实际采样率。ADC 中断这种问题最怕的就是“感觉能跑就行了”实际采样率和预期不一致时整个系统都会埋雷。这个思路和步骤希望能帮你省掉和我一样到处翻手册的半天时间。

相关新闻

三款一键生成论文工具亲测:从大纲到降重怎么选才不踩坑?

三款一键生成论文工具亲测:从大纲到降重怎么选才不踩坑?

写论文这事,最怕的不是写不出来,而是写得心里没底。 题目改了七八版还怕选重了,文献下载了两百篇越读越乱,参考文献格式调到崩溃,交稿前还得担心重复率和AIGC检测。今年开学季一到,又有一波人在搜“AI论文…

2026/8/30 14:50:41 阅读更多 →
TradingAgents解析:多智能体协作如何重塑金融AI决策流程

TradingAgents解析:多智能体协作如何重塑金融AI决策流程

TradingAgents 是 TauricResearch 开源的一个多智能体交易框架。它解决的问题不是“给大模型一个股票代码,然后问它明天涨不涨”,而是把投资决策流程组织成一家虚拟交易公司,让多个大模型分别扮演研究员、交易员、风控官和决策委员会&#xf…

2026/8/30 14:49:40 阅读更多 →
手语识别落地实战:轻量级注意力模型与专家验证数据

手语识别落地实战:轻量级注意力模型与专家验证数据

这次我们来看一个手语识别方向的工作: “Toward Deployable Bangla Sign Language Recognition with Expert-Validated Data and a Lightweight Attention-Based Model” 。标题信息量很足——专家验证过的数据、轻量级注意力模型、面向可部署场景。这不是那种只追…

2026/8/30 14:49:40 阅读更多 →

最新新闻

优雅地解决 onnx 算子不兼容 —— 算子注册

优雅地解决 onnx 算子不兼容 —— 算子注册

目录前言:为什么要看懂"算子注册"一、ONNX 导出本质上是"翻译"二、4 种算子不支持的工况工况 1:词典缺条目(PyTorch 有、ONNX 标准也有、只是导出器没映射)工况 2:目标语言没这个词(to…

2026/8/30 15:51:11 阅读更多 →
模型发布“踩刹车”不可怕,开发者如何保障稳定与可回退?

模型发布“踩刹车”不可怕,开发者如何保障稳定与可回退?

技术圈最近有一个标题很有冲击力:“ChatGPT最强模型紧急踩刹车,奥特曼:你(Astra)吓到我了”。 先说一个容易犯迷糊的点:标题里的“奥特曼”,其实是网友对 OpenAI CEO Sam Altman 的戏称&#x…

2026/8/30 15:51:11 阅读更多 →
nRF54L15+Blecon:低功耗蓝牙设备绕过网关直连云

nRF54L15+Blecon:低功耗蓝牙设备绕过网关直连云

1. 为什么这个组合值得关注 低功耗蓝牙圈子最近有个让我挺兴奋的事:Blecon正式宣布给Nordic新一代nRF54L系列SoC提供云连接支持。如果你这两年一直在跟BLE方案打交道,会知道这意味着什么——不是又加了个SDK的事,而是nRF54L这种把低功耗做到极…

2026/8/30 15:51:11 阅读更多 →
在SIMH中模拟法国Mitra-15小型机:复古计算项目解析

在SIMH中模拟法国Mitra-15小型机:复古计算项目解析

这次我们来看一个比较小众、但非常有复古计算味道的项目:在 SIMH 模拟器框架中模拟法国 CII 公司的 Mitra-15 小型机。项目目前处于 Work in Progress 状态,也就是说,CPU 核心、内存、外设这些模块还在逐步落地,不是开箱即用的完整…

2026/8/30 15:51:11 阅读更多 →
模型训练速度与资源消耗的取舍

模型训练速度与资源消耗的取舍

模型训练速度与资源消耗的取舍模型评估分数提升,未必值得立刻部署。训练集、离线评测和线上请求分布并不完全相同;模型大小、上下文长度、批处理方式、推理引擎和硬件都会改变延迟与费用。选择方案时应把效果、尾延迟、显存、吞吐、失败率和单位业务成本…

2026/8/30 15:51:11 阅读更多 →
基于Spark ALS的短视频推荐系统搭建与实现

基于Spark ALS的短视频推荐系统搭建与实现

基于Spark的个性化短视频推荐系统,是计算机毕业设计里综合性较强的一类题目。它同时涉及大数据存储、分布式计算、Web 后端和推荐算法,恰好覆盖 Hadoop、Spark、Django、Python 四类技术栈。很多同学拿到题目后的第一反应是去找源码,但源码一…

2026/8/30 15:50:11 阅读更多 →

日新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/8/30 0:00:01 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/8/30 0:00:01 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/8/30 0:00:01 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/8/30 0:00:01 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/8/30 0:00:01 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/8/30 0:00:01 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/29 4:34:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/28 17:43:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/29 2:05:18 阅读更多 →