STM32之PVD电压检测

发布者:Serendipity99最新更新时间:2024-10-17 来源: cnblogs关键字:STM32  PVD  电压检测 手机看文章 扫描二维码
随时随地手机看文章

如果VDD或者VDDA电压高于或低于PVD设定阈值都产生中断,表现为每中断一次,LED1就亮变灭或者灭变亮。

  1. /********************************************************************************

  2.   * @file PWR/PVD/main.c

  3.   * @author MCD Application Team

  4.   * @version V3.4.0

  5.   * @date 10/15/2010

  6.   * @brief Main program body.

  7.   ******************************************************************************/

  8. /* Includes ------------------------------------------------------------------*/

  9. #include 'stm32f10x.h'

  10. #include 'stm32_eval.h'


  11. void EXTI_Configuration(void);

  12. void NVIC_Configuration(void);


  13. /**

  14.   * @brief Main program.

  15.   * @param None

  16.   * @retval None

  17.   */

  18. int main(void)

  19. {

  20.   /*!< At this stage the microcontroller clock setting is already configured,

  21.        this is done through SystemInit() function which is called from startup

  22.        file (startup_stm32f10x_xx.s) before to branch to application main.

  23.        To reconfigure the default setting of SystemInit() function, refer to

  24.        system_stm32f10x.c file

  25.      */

  26.   /* Initialize LEDs and Key Button mounted on STM3210X-EVAL board */

  27.   STM_EVAL_LEDInit(LED1);

  28.   

  29.   GPIO_SetBits(GPIOC, GPIO_Pin_7);


  30.   /* Enable PWR and BKP clock */

  31.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);//电源管理部分时钟开启


  32.   /* Configure EXTI Line to generate an interrupt on falling edge */

  33.   EXTI_Configuration();


  34.   /* NVIC configuration */

  35.   NVIC_Configuration();

  36.  

  37.   /* Configure the PVD Level to 2.9V */

  38.   PWR_PVDLevelConfig(PWR_PVDLevel_2V9);// 设定监控阀值


  39.   /* Enable the PVD Output */

  40.   PWR_PVDCmd(ENABLE);// 使能PVD

  41.   

  42.   while (1)

  43.   {

  44.   }

  45. }


  46. /**

  47.   * @brief Configures EXTI Lines.

  48.   * @param None

  49.   * @retval None

  50.   */

  51. void EXTI_Configuration(void)

  52. {

  53.   EXTI_InitTypeDef EXTI_InitStructure;


  54.   /* Configure EXTI Line16(PVD Output) to generate an interrupt on rising and

  55.      falling edges */

  56.   EXTI_ClearITPendingBit(EXTI_Line16);

  57.   EXTI_InitStructure.EXTI_Line = EXTI_Line16;// PVD连接到中断线16上

  58.   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//使用中断模式

  59.   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;//电压上升或下降越过设定阀值时都产生中断。

  60.   EXTI_InitStructure.EXTI_LineCmd = ENABLE;// 使能中断线

  61.   EXTI_Init(&EXTI_InitStructure);// 初始

  62. }


  63. /**

  64.   * @brief Configures NVIC and Vector Table base location.

  65.   * @param None

  66.   * @retval None

  67.   */

  68. void NVIC_Configuration(void)

  69. {

  70.   NVIC_InitTypeDef NVIC_InitStructure;

  71.   

  72.   /* Configure one bit for preemption priority */

  73.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//中断优先级配置

  74.   

  75.   /* Enable the PVD Interrupt */ //设置PVD中断

  76.   NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;

  77.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

  78.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

  79.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  80.   NVIC_Init(&NVIC_InitStructure);

  81. }

  82. /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/

注意:GPIO驱动LED模式为GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;还是推挽输出。

中断处理函数:


  1. void PVD_IRQHandler(void)

  2. {

  3. if(EXTI_GetITStatus(EXTI_Line16) != RESET)

  4. {

  5. /* LED1翻转 */

  6. STM_EVAL_LEDToggle(LED1);


  7. /* Clear the Key Button EXTI line pending bit */

  8. EXTI_ClearITPendingBit(EXTI_Line16);

  9. }

  10. }



关键字:STM32  PVD  电压检测 引用地址:STM32之PVD电压检测

上一篇:STM32硬件电路设计注意事项
下一篇:STM32之Flash

推荐阅读最新更新时间:2026-03-20 11:43

STM32单片机解析说明PVD的使用
前言 有时在一些应用中,我们需要检测系统是否掉电了,或者要在掉电的瞬间需要做一些处理。STM32就有这样的掉电检测机制——PVD(Programmable Voltage Detecter),即可编程电压检测器。通过PVD我们可以设定一个基准电压,当芯片的供电电压高于或低于该基准电压时便产生PVD中断,我们可以在PVD中断里做一些处理。 PVD介绍 本文以STM32F1x为例,来说明PVD的使用。 用户可以利用PVD对VDD电压与电源控制寄存器(PWR_CR)中的PLS 位进行比较来监控电源,这几位选择监控电压的阀值。 通过设置PVDE位来使能PVD。电源控制/状态寄存器(PWR_CSR)中的PVDO标志用来表明VDD
[单片机]
以<font color='red'>STM32</font>单片机解析说明<font color='red'>PVD</font>的使用
应用材料公司推出全新Ioniq™ PVD系统助力解决二维微缩下布线电阻难题
2022年5月26日,加利福尼亚州圣克拉拉——应用材料公司宣布推出一种全新系统,可改进晶体管布线沉积工艺,从而大幅降低电阻,突破了芯片在性能提升和功率降低两方面所面临的重大瓶颈。 Endura® Ioniq™ PVD系统是应用材料公司在解决二维微缩布线电阻难题方面所取得的最新突破。Ioniq系统是一种集成材料解决方案™(IMS™),可将表面制备、PVD和CVD工艺同时集中到同一个高真空系统中 芯片制造商正在利用光刻领域的先进技术将 芯片制程缩小至3纳米及以下节点 。但随着互连线变细,电阻呈现指数级上升,这不仅降低了芯片性能,还增大了功耗。如果该问题无法得到解决,更为先进的晶体管带来的益处将被指数级上升的布线电阻完全抵消
[半导体设计/制造]
应用材料公司推出全新Ioniq™ <font color='red'>PVD</font>系统助力解决二维微缩下布线电阻难题
基于电力电子器件的PWM逆变器结构实现检测电压凹陷的方法设计
引 言 随着现代科技的发展,电力电子装置以及非线性、冲击性负荷的广泛应用,对电能质量的污染越来越严重,其中电压凹陷、电压暂升和瞬时供电中断等暂态电能质量问题尤为明显,并已成为是影响诸多用电设备正常运行的最严重的动态电能质量问题。而计算机、微电子、通信等许多敏感用户对电能质量提出了很高的要求。由于计算机控制设备的大量使用,动态电能质量问题造成的损失日益受到重视。 动态电压恢复器(Dynamk:Voltage Restor-er,DVR)作为一种串联型电能质量调节器,采用基于电力电子器件的PWM逆变器结构,是解决电压凹陷问题的一种有效手段。DVR主要用来保护敏感负荷免遭来自电网的电压扰动尤其是电压凹陷的冲击,同时也应该能够补偿如电
[测试测量]
基于电力电子器件的PWM逆变器结构实现<font color='red'>检测</font><font color='red'>电压</font>凹陷的方法设计
怎样使用指针式万用表低压挡外接一只电阻检测电压
电工人员使用的指针式万用表通常只能检测500V以下的交、直流电压,当需要检测高电压时,可以采用以下方法,外接一只电阻的方法来进行检测。电工人员使用的指针式万用表通常只能检测500V以下的交、直流电压,当需要检测高电压时,可以采用以下方法,外接一只电阻的方法来进行检测。 (1)检测连接电路。使用指针式万用表的低压挡检测高电压时的连接电路如图5-2所示,图中的R。为指针式万用表的内阻,R即为外接的降压电阻器。 (2)降压电阻值的确定。在图5-2检测电路中,串联的降压电阻R的电阻值可以采用以下公式计算得到 R= Rv 或R一(UM2 -UMl )UL式中UMl-指针式万用表原电压挡的量程; UM。-指针式万用表扩展
[测试测量]
怎样采用指针式万用表配合分压器检测电压
(1)检测方法。当被测电压超出万用表的最高电压量限时,不论是 直流电压,还是交流电压,都可采用图5-1中的电阻分压器。Vx为被测高 压,R1和R2为分压器,R、为万用表的输入电阻,由万用表测得的电压队, 即可求得被测高电压 Vx一(R1+R2//R入/R2//R入) (2)必须注意的问题。U为了减小由于加入分压器给被测电压带来的 误差,R:应该采用高阻值,即R2 》RA,R2比RA越大,测量的准确度越高。 (2)如果指针式万用表扩展后满量程时,流过串联电阻R的电流为 100/yA,则R的电功率为 P=IzR=(100×10- 6)2×20×100 =0. 2W 根据计算得到的结果,所串联电阻R就可以
[测试测量]
怎样减少因电压降造成的指针式万用表检测的误差
指针式万用表检测时的电压降是指指针式万用表直流电流挡在满量程检测时产生的电压降。 (1)电压降的具体数值。对于某一型号的指针式万用表,其电压降的数值通常为一定值,不同型号的指针式万用表,其电压降相差不大,如MF500型万用表与MF30型万用表的电压降均为0.75V左右。 (2)减少电压降引起误差的方法。为了减少因电压降引起的指针式万用表检测误差,在进行参数检测时,除了应选用高灵敏度的指针式万用表外,还要正确选择合适的量程。例如,选择高压挡检测比采用低压挡对被检测的电路影响小,选择大电流挡比选用小电流挡检测影响小。
[测试测量]
怎样掌握指针式万用表检测交流电压的基本方法
交流电压的测量方法如图1-5所示,它由表头、整流元件(即二极管)和多个倍压电阻等组成,被测电压加在“+”、“”两端。由于磁电式测量机构只能测量直流,不能测量交流,因此要使用整流元件,用于将交流整流为直流,整流出来的直流电压和交流电压的有效值成正比,因此表头上的标尺可以直接按交流电压的有效值进行刻度。由于已将交流整流为直流,因此也可以通过量程开关来改变倍压电阻的大小,从而改变电压量程。
[测试测量]
用万用表指示的齐纳电压检测
用万用表指示的齐纳电压检测器 电路的功能 普通齐纳二极管基电压不同、温度系数也有差异,误差大,在实用中只有对齐纳电压经过认真测量选择才能获得高性能的基准电压源。齐纳电流有1MA、5MA、10MA三种,同微小功率型到温度补偿式均有,品种齐全。 电路工作原理 为了用恒定电流置偏待测试的齐纳二极管,将其接在OP放大器的反馈回路内,齐纳二极管反向电流IS由OP放大器的输出端供给,并由反相端流出。对于平衡电路的假设地来说,即使齐纳电压改变,也有恒定电流流过。需要改变电流时,可改变电阻R,R用R=-VCC/(IS)计算。
[测试测量]
用万用表指示的齐纳<font color='red'>电压</font><font color='red'>检测</font>器
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved