STM32 ADC寄存器详解:ADC_ISR控制寄存器
创作时间:
作者:
@小白创作中心
STM32 ADC寄存器详解:ADC_ISR控制寄存器
引用
CSDN
1.
https://blog.csdn.net/Flocx/article/details/144606339
在STM32微控制器中,ADC(模数转换器)相关的寄存器用于配置、控制和读取ADC的功能。以下是ADC的主要寄存器及其功能说明:
ADC_ISR 控制寄存器
ADC_ISR是一个32位的寄存器,但实际上只使用了前10位,具体结构如下:
位 | 名称 | 功能描述 |
|---|---|---|
[0] | ADRDY | ADC准备就绪标志(ADC Ready) |
[1] | EOSMP | 采样阶段完成标志(End of Sampling Phase) |
[2] | EOC | 当前通道转换完成标志(End of Conversion) |
[3] | EOS | 规则组序列完成标志(End of Sequence) |
[4] | OVR | 数据覆盖标志(Overrun) |
[5] | JEOC | 注入组通道转换完成标志(Injected End of Conversion) |
[6] | JEOS | 注入组序列完成标志(Injected End of Sequence) |
[7] | AWD1 | 模拟看门狗1事件标志(Analog Watchdog 1) |
[8] | AWD2 | 模拟看门狗2事件标志(Analog Watchdog 2) |
[9] | AWD3 | 模拟看门狗3事件标志(Analog Watchdog 3) |
[10-31] | 保留 | 未使用,默认为0 |
注意:JEOS和JEOC目前只支持F3 F4 H7系列,图中为g0系列,故没有
[0] ADRDY - ADC准备就绪标志
- 功能:指示ADC是否已准备好进入工作状态。当ADC启用(ADEN位设为1)后,硬件会完成内部初始化,然后置位此标志。
- 触发条件:当ADC_CR中的ADEN位被置1且ADC完成初始化后,硬件置位此标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 0))。
- 用途:确保ADC准备好后才启动转换。初始化过程中通常检查此标志。
示例代码:
// 写法一
ADC1->CR |= ADC_ISR_ADRDY_Msk; // 启用ADC
while (!(ADC1->ISR & ADC_ISR_ADRDY_Msk)); // 等待ADRDY标志
ADC1->ISR |= ADC_ISR_ADRDY_Msk; // 清除ADRDY标志
// 写法二
ADC1->CR |= (1U << 0); // 启用ADC
while (!(ADC1->ISR & (1U << 0))); // 等待ADRDY标志
ADC1->ISR |= (1U << 0); // 清除ADRDY标志
[1] EOSMP - 采样阶段完成标志
- 功能:表示采样阶段结束,ADC已完成信号采样,准备开始转换。
- 触发条件:ADC的采样阶段完成后,硬件置位此标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 1))。
- 用途:用于监控采样时间,尤其在需要手动调整采样时(例如设置较长采样时间)。可用于在采样完成后执行特殊处理。
示例代码:
// 写法一
if (ADC1->ISR & ADC_ISR_EOSMP_Msk) {
ADC1->ISR |= ADC_ISR_EOSMP_Msk; // 清除EOSMP标志
}
// 写法二
if (ADC1->ISR & (1U << 1)) {
ADC1->ISR |= (1U << 1); // 清除EOSMP标志
}
[2] EOC - 当前通道转换完成标志(单通道)
- 功能:表示当前通道的转换已完成,转换结果可在ADC_DR中读取。
- 触发条件:每次完成一个通道的转换时,硬件置位此标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 2))。
- 用途:用于单通道转换的完成监控。多通道规则组中,用于逐一处理每个通道的转换结果。
示例代码:
// 写法一
if (ADC1->ISR & ADC_ISR_EOC_Msk) {
ADC1->ISR |= ADC_ISR_EOC_Msk; // 清除EOC标志
}
// 写法二
if (ADC1->ISR & (1U << 2)) {
ADC1->ISR |= (1U << 2); // 清除EOC标志
}
[3] EOS - 规则组序列完成标志(多通道)
- 功能:表示规则组中所有通道的转换均已完成。
- 触发条件:在规则组的最后一个通道转换完成时,硬件置位此标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 3))。
- 用途:用于规则组多通道转换的整体完成监控。一般与DMA配合使用,确认所有通道的数据已转换完成。
示例代码:
// 写法一
if (ADC1->ISR & ADC_ISR_EOS_Msk) {
ADC1->ISR |= ADC_ISR_EOS_Msk; // 清除EOS标志
}
// 写法二
if (ADC1->ISR & (1U << 3)) {
ADC1->ISR |= (1U << 3); // 清除EOS标志
}
[4] OVR - 数据覆盖标志
- 功能:表示ADC数据寄存器(ADC_DR)中的数据未被读取时,新数据覆盖了旧数据。
- 触发条件:当新转换结果覆盖未读取的旧结果时,硬件置位此标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 4))。
- 用途:检测数据读取是否及时,尤其在使用非DMA模式时。配合DMA时,可能需要禁用数据覆盖以避免数据丢失。
示例代码:
// 写法一
if (ADC1->ISR & ADC_ISR_OVR_Msk) {
ADC1->ISR |= ADC_ISR_OVR_Msk; // 清除OVR标志
}
// 写法二
if (ADC1->ISR & (1U << 4)) {
ADC1->ISR |= (1U << 4); // 清除OVR标志
}
[5] JEOC - 注入组通道转换完成标志
- 功能:表示注入组中的当前通道转换完成。
- 触发条件:每当注入组的一个通道完成转换时,硬件置位此标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 5))。
- 用途:用于注入组的逐通道数据监控。
示例代码:
if (ADC1->ISR & (1U << 5)) {
ADC1->ISR |= (1U << 5); // 清除JEOC标志
}
[6] JEOS - 注入组序列完成标志
- 功能:表示注入组中的所有通道转换均已完成。
- 触发条件:在注入组的最后一个通道转换完成时,硬件置位此标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 6))。
- 用途:用于注入组多通道转换的整体完成监控。
示例代码:
if (ADC1->ISR & (1U << 6)) {
ADC1->ISR |= (1U << 6); // 清除JEOS标志
}
[7] AWD1 - 模拟看门狗1标志
- 功能:表示规则组或注入组的某个通道电压超出了模拟看门狗1的阈值。
- 触发条件:当ADC转换结果超出设置的上下限时,硬件置位此标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 7))。
- 用途:监测ADC信号电压是否超出安全范围。
示例代码:
// 写法一
if (ADC1->ISR & ADC_IER_AWD1IE_Msk) {
ADC1->ISR |= ADC_IER_AWD1IE_Msk; // 清除AWD1标志
}
// 写法二
if (ADC1->ISR & (1U << 7)) {
ADC1->ISR |= (1U << 7); // 清除AWD1标志
}
[8] AWD2 和 [9] AWD3 - 模拟看门狗2和3标志
- 功能:分别表示规则组或注入组的某个通道电压超出了模拟看门狗2或3的阈值。
- 触发条件:当ADC转换结果超出设置的上下限时,硬件置位这些标志。
- 清除方法:软件写1清除(ADC_ISR |= (1U << 8) 和 ADC_ISR |= (1U << 9))。
- 用途:监测多个不同范围的信号(例如多通道信号的不同安全范围)。
示例代码:
if (ADC1->ISR & (1U << 8)) {
ADC1->ISR |= (1U << 8); // 清除AWD2标志
}
if (ADC1->ISR & (1U << 9)) {
ADC1->ISR |= (1U << 9); // 清除AWD3标志
}
总结
通过使用ADC_ISR的每一位,可以对ADC的运行状态和事件进行精确监控,满足单通道和多通道的各种应用需求。
热门推荐
《永乐大典》载蒸汽机?谣言背后的科技史真相
打击乐艺考全攻略:专业方向、考试内容与备考建议
跑步与快走哪个效果好?
养花必看:23种石材类植料详解
什么是网络安全等级保护?
潘晓婷:从“九球天后”到全能艺人的台球传奇
肚子胀满疼痛、没有食欲,名医李东垣:7味中药,还你健康的脾胃
改良版蒙古牛肉干(干粮版)制作方法
小学生考试复习指南:六大错误要避免,三大要点要记牢
从心理学视角来分析:宠物长得越来越像主人
狗狗和主人的互动体现在心率差异上
为何针灸成为荨麻疹治疗的新趋势?中医视角解析
低空经济 政策梳理
汽车容量升数的准确计算方法及适用情况
被人讹钱不还的怎么办
马桶正对着门好不好——购房装修需注意的风水讲究
美西战争背景及其对国际格局的影响
企业财务审查是什么?目的、流程及注意事项全解析
烨的多个读音,有着一段饶有趣味的演变历程
家里的不锈钢餐具做不到这1点,建议你换掉
厨房为什么吊顶很矮(厨卫吊顶选材与高度如何选择?)
内观疗法在精神心理疾病治疗中的应用
算力可共享,视觉也AI,数据能流动,来听听浙江的“造新”故事
双通道内存有什么优点和缺点
三国辉煌:刘备的五虎大将
胃食管反流与幽门螺杆菌有关系吗?
全国最新数据来了!最有钱的是……你的收入达标了吗?
员工被迫离职如何举证?工资结算与补偿金标准全解析
6个科学有效的减肥方法,助你轻松燃烧卡路里
AI领域最强者是谁?揭秘人工智能的顶尖选手