首页/新闻资讯/正文详情

ADC中断只进一次

发布时间:2026/11/5 6:41:29 来源:云帆数科 栏目:资讯中心
ADC中断只进一次
ADC中断只进一次问题出在CubeMX这个配置现象FOC工程移植完之后串口通了LED也正常闪但电机就是不转。在ADC回调里加了个计数器发现数字一直是1不再增长。cvolatile int adc_isr_count 0;void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc){adc_isr_count;// ...}串口打印显示adc_isr_count 永远停在1。这意味着ADC中断只被触发了一次之后就再也没进过中断。ADC中断是FOC算法的心跳。它不跳Clarke、Park、PID、SVPWM这些代码一行都不会执行。排查过程第一步确认TIM1在跑用示波器测PA8TIM1_CH1有PWM方波输出说明TIM1计数器在正常运行。既然TIM1在跑TRGO应该也在产生。问题可能出在ADC没有正确接收触发信号。第二步对比参考工程的adc.c把商家提供的能正常运行的例程和自己的工程逐行对比发现关键差异在注入组的触发源配置上。参考例程csConfigInjected.ExternalTrigInjecConv ADC_EXTERNALTRIGINJECCONV_T1_TRGO;我的工程csConfigInjected.ExternalTrigInjecConv ADC_INJECTED_SOFTWARE_START;我的ADC配置成了软件触发不是TIM1 TRGO硬件触发。为什么软件触发只进一次软件触发模式下只有主动调用 HAL_ADCEx_InjectedStart_IT() 时才会触发一次转换。之后如果没有再次调用ADC就永远不会再采样。看我的代码cHAL_ADCEx_InjectedStart_IT(hadc1); // 触发一次HAL_ADCEx_InjectedStart(hadc2);// 之后没有再次调用所以text执行 HAL_ADCEx_InjectedStart_IT → ADC采样一次 → 进一次中断之后再无触发源 → 中断永远不再进整个ADC回调变成了一次性的FOC算法跑了一轮就停了。硬件触发和软件触发的区别触发方式 触发源 特点软件触发 代码调用HAL_ADCEx_InjectedStart 只能触发一次需要重复调用硬件触发 TIM1 TRGO信号 每个PWM周期自动触发无需CPU干预FOC需要每个PWM周期采样一次电流所以必须用硬件触发。正确的硬件触发链路textTIM1计数器跑到特定时刻↓ 硬件自动产生TRGO脉冲ADC1/ADC2收到触发信号↓ 硬件自动开始采样采样完成↓ 触发ADC中断进入HAL_ADCEx_InjectedConvCpltCallback整个链路全由硬件自动完成CPU只需要处理最后的中断。

相关推荐

Captura 屏幕录制启动失败?4 类症状分层排查,恢复录制功能
Captura 屏幕录制启动失败?4 类症状分层排查,恢复录制功能

Captura 屏幕录制启动失败?4 类症状分层排查,恢复录制功能 【免费下载链接】Captura Capture Screen, Audio, Cursor, Mouse Clicks and Keystrokes 项目地址: https://gitcode.com/gh_mirrors/ca/Captura Captura 是 Windows 上的屏幕录制工具&a… · 2026/11/5 6:41:29

Codex 本地 AI 编程工具,一键安装包免去环境折腾
Codex 本地 AI 编程工具,一键安装包免去环境折腾

前言 很多想体验 Codex 的开发者,卡在前期环境部署环节。手动安装 Node.js、配置依赖,还要敲大量命令行,对于新手十分不友好,很容易出现各种报错。 Codex 一键安装包把环境配置、依赖安装、客户端部署全部打包封装。不需要手动配… · 2026/11/5 6:41:29

C 语言基础:冒泡排序与二级指针详解
C 语言基础:冒泡排序与二级指针详解

博客的开篇,我们来介绍一个基础算法——冒泡排序,它的作用是将未升序数组排成升序。一、冒泡排序:让数组有序的基本算法冒泡排序的核心思路是:两两相邻比较,较大的元素向后移动。每一轮都能排好至少一个数,… · 2026/11/5 6:40:29

10A太阳能充电控制器开源图纸:PWM直充与三段式充电调试
10A太阳能充电控制器开源图纸:PWM直充与三段式充电调试

简介:面向电子爱好者与嵌入式开发者的10A太阳能充电控制器开源方案,包含完整原理图与固件源码,适用于中小型光伏系统的学习、复刻与二次开发。压缩包共390个文件、约1.99MB,以c/h源码与工程配置为主,辅以sch原理图、pc… · 2026/11/5 8:21:05

自动驾驶NMPC与MPC路径规划控制技术解析
自动驾驶NMPC与MPC路径规划控制技术解析

1. 自动驾驶规划控制的核心挑战在自动驾驶系统开发中,规划控制模块直接决定了车辆行驶的平顺性和安全性。传统PID控制虽然简单易实现,但在复杂动态环境下往往表现不佳。这正是我们需要引入NMPC(非线性模型预测控制)和MPC&#xff… · 2026/11/5 8:21:05

Oracle到DuckDB日期函数迁移与连续区间计算实践
Oracle到DuckDB日期函数迁移与连续区间计算实践

1. 从Oracle到DuckDB:日期处理函数的迁移实践在数据库迁移或跨平台开发过程中,日期时间函数的兼容性处理是个高频痛点。最近我在处理一个VIP会员续费分析系统时,需要将原本运行在Oracle上的"连续会员区间计算"逻辑迁移到DuckDB。这… · 2026/11/5 8:21:05

C#解析.rofl回放元数据:LeagueReplayParser批量落库
C#解析.rofl回放元数据:LeagueReplayParser批量落库

简介:LeagueReplayParser 是面向《英雄联盟》重放解析的 C# 类库,可读取文档目录下扩展名为 .rofl 的重放文件,并围绕客户端版本与重放启动提供基础能力,适合研究比赛统计、回放分析或客户端重放流程的开发者参考;解析… · 2026/11/5 8:21:05

拆解安全厂商17K*15:公积金基数、年终奖与谈薪避坑
拆解安全厂商17K*15:公积金基数、年终奖与谈薪避坑

拿到 Offer 了!某安全厂商 17K15——这个数字组合在安全圈的校招和社招群里一出现,讨论热度基本能顶到当天最高。17K 的月薪基数、15 个月的年薪包,听起来是应届生里相当能打的一档,不少人第一反应就是"年包 25.5 万&#xf… · 2026/11/5 8:21:05

四轴机械臂反解实战:牛顿迭代法的MATLAB实现与嵌入式移植
四轴机械臂反解实战:牛顿迭代法的MATLAB实现与嵌入式移植

简介:本资源面向机器人学初学者与MATLAB实践者,聚焦四轴机械臂逆运动学核心问题——关节反解,系统讲解雅可比矩阵原理、牛顿迭代法数值求解流程及其实现要点。资源包含1个MATLAB仿真脚本(.m)与1份英文权威参考资料PDF&… · 2026/11/5 8:20:04

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码