STM32F4 ADC1 模拟看门狗

发布者:小熊掌心最新更新时间:2016-12-19 来源: eefocus关键字:STM32F4  ADC  模拟看门狗 手机看文章 扫描二维码
随时随地手机看文章

ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LTR中设置。库函数是使用ADC_AnalogWatchdogThresholdsConfig设置的,无论是常规通道还是注入通道,都非常简单。

当模拟看门狗检测到电压高于上限或者低于下限时将会产生看门狗中断。捕获这个中断,可以做出一些应对措施。

数据手册上特别之处的一个东西:模拟看门狗说使用的比较数据与ADC_CR2寄存器中设置的数据对齐方式无关。看门狗比较是在数据对齐之前完成的。先进行看门狗比较,再将数据放入ADC_DR数据寄存器。

在ST的库中,只有简单的三个与看门狗相关的函数:

void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog);
void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold,uint16_t LowThreshold);
void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel);

使用ADC_AnalogWatchdogThresholdsConfig设置触发看门狗的上下限

使用ADC_AnalogWatchdogSingleChannelConfig配置要使用模拟看门狗的通道

配置完成后使用ADC_AnalogWatchdogCmd启动模拟看门狗。

我写的函数很简单,就这么三行。将模拟看门狗加在ADC1的CH1上。代码如下:

void ADC_WatchdogConfig(void)
{
  ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_Channel_0);
  ADC_AnalogWatchdogThresholdsConfig(ADC1,1500,0xFFF);
  ADC_AnalogWatchdogCmd(ADC1,ADC_AnalogWatchdog_SingleRegEnable);
}

NVIC中初始化模拟看门狗:

void NVIC_Config(void)
{
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //设置中断优先级分组
  NVIC_InitStructure.NVIC_IRQChannel = ADC_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
  NVIC_Init(&NVIC_InitStructure);
}

捕获看门狗中断:

void ADC_IRQHandler(void)
{
  ADC_ITConfig(ADC1,ADC_IT_AWD,DISABLE);
  if(SET == ADC_GetFlagStatus(ADC1,ADC_FLAG_AWD))
  {
    ADC_ClearFlag(ADC1,ADC_FLAG_AWD);
    ADC_ClearITPendingBit(ADC1,ADC_IT_AWD);
      printf("ADC AWD is happened.\r\n");
   }
   ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
}

当然,最后别忘了打开ADC的中断:

ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);


关键字:STM32F4  ADC  模拟看门狗 引用地址:STM32F4 ADC1 模拟看门狗

上一篇:STM32F4 RTC
下一篇:STM32F4 随机数发生器RNG

推荐阅读最新更新时间:2024-03-16 15:26

STM32F4学习笔记10——RTC实时时钟
RTC实时时钟 实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器。RTC 提供一个日历时钟、两个可编程 闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC 还包含用于管理低功耗模 式的自动唤醒单元。 两个 32 位寄存器包含二进码十进数格式 (BCD) 的秒、分钟、小时(12 或 24 小时制)、星 期几、日期、月份和年份。此外,还可提供二进制格式的亚秒值。 系统可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。并且还可以进行夏令时 补偿。 其它 32 位寄存器还包含可编程的闹钟亚秒、秒、分钟、小时、星期几和日期。 此外,还可以使用数字校准功能对晶振精度的偏差进行补偿。 上电复位后,所有 RT
[单片机]
<font color='red'>STM32F4</font>学习笔记10——RTC实时时钟
循环式模数转换器电路
循环式 模数转换器 电路:
[模拟电子]
循环式<font color='red'>模数转换器</font>电路
如何使用DMA来进行ADC操作?
STM32的优点在哪里?除去宣传环节,细细分析,STM32时钟不算快,72MHZ,也不能扩展大容量的RAM FLASH,同样没有DSP那样强大的指令集。它的优势在哪里呢? ---就在快速采集数据,快速处理上。 ARM的特点就是方便。 这个快速采集,高性能的ADC就是一个很好的体现,12位精度,最快1uS的转换速度,通常具备2个以上独立的ADC控制器,这意味着, STM32可以同时对多个模拟量进行快速采集,这个特性不是一般的MCU具有的。以上高性能的ADC,配合相对比较块的指令集和一些特色的算法支持,就构成了STM32在电机控制上的强大特性。 好了,正题,怎末做一个简单的ADC? 注意是简单的,ADC是个复杂的问题,涉及硬件
[单片机]
ADC0832双通道实现AD电压转换
最近用到双通道ADC0832,发现网上的程序很多不能使用,存在各种各样的一些问题。现提供完整的C程序,供电子爱好者交流使用。 下面是关于ADC0832的一些资料(部分资料来自互联网,但均经检验正确无误,放心使用): ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。 ADC0832 具有以下特点: · 8位分辨率; · 双通道A/D转换; · 输入输出电平与TTL/CMOS相兼容; · 5V电源供电时输入电压在0~5V之间; · 工作频率为250KHZ,转换时间为32μS; · 一般功耗仅为15mW; ·
[单片机]
<font color='red'>ADC</font>0832双通道实现AD电压转换
通过外部基准调节MAX149x系列Σ-Δ面板表ADC的增益
通过外部基准调节MAX149x系列Σ-Δ面板表ADC的增益 摘要:MAX149x系列Σ-Δ面板表ADC能够使用外部500mV至3.6V的外部基准,并获得精确的转换结果。该应用笔记介绍了如何使用外部电压基准并对其进行分压,产生一个驱动MAX149x系列的可变基准电压,实现ADC增益调节。 电压基准对ADC的影响 MAX1447、MAX1491、MAX1493、MAX1495、MAX1496、MAX1498是Σ-Δ面板表IC,允许用户选择内部2.048V基准或外部500mV至3.6V的基准源。多数基本配置中,这些器件在输入AIN+和AIN-两端要求2.048V的基准,并将转换结果输出到LED/LCD显示器。输出计数有效分
[电源管理]
通过外部基准调节MAX149x系列Σ-Δ面板表<font color='red'>ADC</font>的增益
STM32H7实现ADC等周期采集(定时器触发+DMA传输)
定时器输出的PWM通道设置的是2s的周期,50%占空比,方便没有示波器的条件下观察结果。 数据会2s采集一次,500ms打印一次。 主函数代码 u16 buffer ; int main(void) { u16 adcx; //Cache_Enable(); //打开L1-Cache HAL_Init(); //初始化HAL库 Stm32_Clock_Init(200, 2, 2, 2); //设置时钟,400Mhz delay_init(400); //延时初始化 uart_init(115200); //串口初始
[单片机]
STM32H7实现<font color='red'>ADC</font>等周期采集(定时器触发+DMA传输)
基于ADC081S051与51单片机的接口电路及驱动程序
引言 自然界存在的信号通常为模拟信号,在测控系统中通常将采集到的模拟信号数字化,然后交给微处理器或微控制器进行处理。因此模数转换器成为测控系统中不可缺少的部分。ADC081S051 模数转换器是国家半导体公司生产的低功率单通道CMOS 8位A/D转换器,它采用串行外设接口方式进行数据输出。与传统的器件不同的是,传统器件的采样速率是固定的,而ADC081S051 的采样速率可以在200~500 KSPS 范围内可变。 ADC081S051 的数据输出是串行数据输出,它与SPI、QSPI 等一些标准相兼容。它的工作电压范围在2.7~5.25 V,因此可以采用3 V或者5 V电源供电。它可以应用于便携式系统、远程数据采集、仪器与控制系统
[电源管理]
基于<font color='red'>ADC</font>081S051与51单片机的接口电路及驱动程序
TI 推速率高达400 MSPS 业界最快14 位ADC
高速度、高分辨率与出色性能的完美结合非常适合宽频带应用 2007 年 8 月14 日,北京讯 日前,德州仪器 (TI) 宣布推出速率高达 400 MSPS 的业界最快单片 14 位模数转换器 (ADC)。这款新产品实现了无与伦比的高性能,在 400 MSPS 下的有效位数 (ENOB) 可达 11.1,从而能够支持各种高带宽应用,其中包括测试与测量设备、软件定义无线电、雷达系统以及通信仪表等,这些设备以前只能采用分辨率较低的 ADC。更多详情,敬请访问: http://focus.ti.com.cn/cn/docs/prod/folders/print/ads5474.html 。 ADS5474 采用 TI 专有 BiCo
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved