STM32F3 ADC 注入
STM32F3 系列的 ADC 注入通道(Injected Channels)是一种高级功能,用于在规则通道(Regular Channels)转换过程中插入高优先级的采样任务。以下是关于注入通道的核心要点和配置指南:
注入通道的特点
-
优先级高
注入通道可以打断正在进行的规则通道转换,立即执行紧急采样(如过压/过流保护等关键信号)。 -
独立配置
每个注入通道有独立的采样时间、触发源和存储寄存器(JDR1-JDR4),与规则通道互不干扰。 -
触发方式灵活
支持多种触发源:软件触发、外部引脚触发、定时器触发等。
配置步骤(基于HAL库)
1. 初始化ADC
ADC_HandleTypeDef hadc;
hadc.Instance = ADC1;
hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; // 时钟分频
hadc.Init.Resolution = ADC_RESOLUTION_12B; // 12位分辨率
hadc.Init.ScanConvMode = ENABLE; // 多通道扫描模式
hadc.Init.ContinuousConvMode = DISABLE; // 非连续转换
hadc.Init.DiscontinuousConvMode = DISABLE;
HAL_ADC_Init(&hadc);
2. 配置注入通道参数
ADC_InjectionConfTypeDef sConfigInjected;
sConfigInjected.InjectedChannel = ADC_CHANNEL_1; // 选择注入通道(如通道1)
sConfigInjected.InjectedRank = ADC_INJECTED_RANK_1; // 注入组内的优先级(1为最高)
sConfigInjected.InjectedSamplingTime = ADC_SAMPLETIME_28CYCLES_5; // 采样时间
sConfigInjected.InjectedTrigger = ADC_EXTERNALTRIGINJEC_T1_TRGO; // 触发源(如定时器1)
sConfigInjected.AutoInjectedConv = DISABLE; // 是否自动连续转换
sConfigInjected.InjectedOffset = 0; // 数据偏移量
HAL_ADCEx_InjectedConfigChannel(&hadc, &sConfigInjected);
3. 启动注入转换
// 通过软件触发注入转换
HAL_ADCEx_InjectedStart(&hadc);
// 或通过外部触发(如定时器信号)
4. 读取注入通道数据
uint16_t adc_value;
adc_value = HAL_ADCEx_InjectedGetValue(&hadc, ADC_INJECTED_RANK_1); // 读取Rank1的数据
关键注意事项
-
触发源选择
注入通道的触发源需与规则通道分开配置,避免冲突。例如,使用定时器触发时,规则组可能用ADC_EXTERNALTRIG_T1_TRGO,而注入组用ADC_EXTERNALTRIGINJEC_T1_TRGO。 -
中断处理
若需实时响应注入转换完成,可启用ADC中断:HAL_ADCEx_InjectedStart_IT(&hadc); // 启动带中断的注入转换在中断回调函数中处理数据:
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef* hadc) { uint16_t value = HAL_ADCEx_InjectedGetValue(hadc, ADC_INJECTED_RANK_1); // 处理数据... } -
数据对齐
注入通道数据支持左对齐(ADC_DATAALIGN_LEFT)或右对齐(ADC_DATAALIGN_RIGHT),需与配置的Resolution匹配。
典型应用场景
- 电机控制:在PWM周期中插入电流采样(注入通道),确保实时性。
- 电源保护:快速响应过压/过流事件,立即触发注入采样。
- 多任务采集:规则通道用于常规监测,注入通道处理突发高优先级信号。
建议结合STM32F3参考手册(RM0316)和CubeMX工具进行详细配置,确保硬件触发源与ADC设置匹配。
【产品推荐】STM32F3 系列 带有DSP和FPU指令的STM32F3系列混合信号MCU
STM32F3 系列 MCU芯片简介:STM32F3系列集成了运行于72 MHz的32位Arm® Cortex®-M4内核(带有FPU和DSP指令)以及丰富的模拟外设,从而降低整体应用成本并简化系统
单片机STM32F3/STM32F4和STM32L4/STM32L4plus的完整编程指南
本编程手册为STM32单片机用户提供关于Cortex®-M4内核的单片机STM32F3, STM32F4 and
AN5310_使用STM32F3系列与STM32G4系列设备的模拟特性指南
AN5310_使用STM32F3系列与STM32G4系列设备的模拟特性指南
资料下载
陈艳
2022-11-21 17:06:46
RTX移植到STM32F3的方法
使用环境:STM32F303标准外设库;keil4.74;首先需要准备一份STM32F3模板,可以在我上传的资源中下载。以下工程目录是我移植好后实现LED闪烁的代码;第一步:project-->
基于STM32f3的FIR应用测试分析 精选资料分享
工具和简介目的:利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器。通过STM32F3的DSP模块实现移植应用,测试分析其运行效率等,并将其运行结果同MATLAB运行结果比较,分析
2012年推出的STM32F3系列的延续
STM32G4基于ArmCortex-M4内核,支持FPU和DSP指令集,主频高达170MHz,相较于STM32F3和STM32F1的72MHz
2021-03-11 09:36:37
ST带有DSP和FPU指令的STM32F3系列混合信号MCU资料!
本帖最后由 o_dream 于 2020-9-2 15:37 编辑 STM32F3系列集成了运行于72MHz的32位Arm® Cortex®-M4内核(带有FPU和DSP指令)以及丰富的模拟
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览