历史上的今天
返回首页

历史上的今天

今天是:2025年05月14日(星期三)

正在发生

2018年05月14日 | STM32F4 ADC1 模拟看门狗【库函数操作】

2018-05-14 来源:eefocus

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);


推荐阅读

史海拾趣

Aborn Electronics Inc公司的发展小趣事

随着产品线的不断丰富和技术实力的不断提升,Aborn Electronics开始积极寻求市场拓展。公司先后在国内外多个地区设立了销售网点和分支机构,并通过参加各类行业展会和论坛,加强与其他企业的交流与合作。同时,Aborn Electronics注重品牌建设,通过提升产品质量和服务水平,逐渐树立起了良好的企业形象和口碑。

Altech公司的发展小趣事

在电子行业的发展历程中,Altech公司凭借其敏锐的市场洞察力,率先投入研发铝合金汽车线束导体。随着新能源汽车市场的崛起,对高效、轻量化的线束导体需求日益增长。Altech公司成功研发出铝合金汽车线束导体,不仅满足了市场对轻量化的需求,还提高了导电性能,为新能源汽车行业带来了革命性的变革。

Chenmoun Enterprise Ltd公司的发展小趣事

Chenmoun Enterprise Ltd深知技术创新是企业发展的核心动力。因此,公司每年都会投入大量的资金用于研发新的电子产品和技术。通过不断的技术创新和产品升级,Chenmoun在行业内保持了领先地位,并实现了持续稳健的发展。

E-T-A [E-T-A Circuit Breakers]公司的发展小趣事

进入1950年代,E-T-A公司开始关注固态远程电源控制器(SSRPCs)的研发。这一创新技术为电气系统提供了更加可靠和高效的电源管理方案。公司投入大量资源进行研发,成功推出了多款固态远程电源控制器产品,这些产品在市场上获得了广泛认可,并为公司带来了可观的收益。

CSB公司的发展小趣事

随着技术的不断发展和市场的日益成熟,CSB公司意识到单纯依靠技术创新已无法满足企业长远发展的需求。于是,公司开始加强市场拓展和品牌建设。通过积极参加行业展会、加大广告宣传力度、优化销售渠道等方式,CSB公司成功提升了品牌知名度和美誉度。同时,公司还注重与合作伙伴建立长期稳定的合作关系,共同开拓市场,实现互利共赢。

富士康(FOXCONN)公司的发展小趣事

为了更好地服务全球客户,FMS积极实施全球化战略。公司在中国深圳设立了子公司——深圳市美丽微半导体有限公司,作为在中国大陆的主要生产基地与销售窗口。同时,FMS还在亚洲、欧洲、美洲等地设立了多个销售据点,形成了覆盖全球的营销网络。这一布局不仅提升了FMS的市场响应速度,也极大地增强了其品牌影响力。

问答坊 | AI 解惑

用J-LINK来调试 EK-LM3S8962 开发板吧!

收到 EK-LM3S8962 开发板的第一步,就是插上jlink.没想到啊没想到, j-link command居然提示没有目标板. 找出开发板的readme看了下,如果是版本B的EK-LM3S8962,这个jtag接头居然是双向的,也就是这个接头可以可以用来调试其他的 ...…

查看全部问答>

嵌入式低层开发比嵌入式应用开发的薪资要高很多?

做嵌入式是不是一定要会硬件,比如驱动开发,系统移殖。只做应用不算嵌入式?比如手机上的音视频?…

查看全部问答>

请教:关于Linux和Cpu相关的疑问。

那位能帮忙给说明一下呢? 1.linux目前都支持那些常用的微处理器,如powerPC、mips、ARM等。 2.是否如果linux能支持这些Cpu的话,那么在linux上的应用程序基本上也是可以移植到这些CPU的呢(除了那些用汇编写的程序)。例如,Gtk+、Qt等。也就是说 ...…

查看全部问答>

有偿求VS2005/2003+winCE5.0/4.2,2440开发板,串口通讯!

求高手指点VS2005/2003+winCE5.0/4.2环境,2440开发板的串口通讯模块! 现金有偿求! 电话:13759970064 本人在西安。外地的可以短信我,我打回去!…

查看全部问答>

求助,谁有IESAMPLE 或iesimple的源代码?

我在google上找了半天,没找到,谁有麻烦给我发一个,小弟不胜感激?我的邮箱jamiss@21cn.com。谢谢!…

查看全部问答>

申请TI LM3S8962 评估套件试用

申请TI LM3S8962 评估套件试用 [ 本帖最后由 lxiny25 于 2010-10-22 14:06 编辑 ]…

查看全部问答>

今年的题大概有哪些方向???

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 无线通信的没有啦!!!我们做的就是这个啊!!!咋么办呢“”“???  …

查看全部问答>