stm32pvd电源监测使用-皇冠最新app版本

单片机 > 单片机程序设计 > 详情

stm32pvd电源监测使用

发布时间:2024-11-15 发布时间:
|
  1. 正确操作步骤:

  2. 开时钟;配置电源检测;配置中断优先级

  3. /* includes ------------------------------------------------------------------*/

  4. #include "stm32f10x.h"

  5. #include "stm32_eval.h"


  6. void exti_configuration(void);

  7. void nvic_configuration(void);



  8. int main(void)

  9. {

  10.    

  11.   

  12.   stm_eval_ledinit(led1);

  13.   

  14.   gpio_setbits(gpioc, gpio_pin_7);


  15.   /* enable pwr and bkp clock */

  16.   rcc_apb1periphclockcmd(rcc_apb1periph_pwr | rcc_apb1periph_bkp, enable);//电源管理部分时钟开启 


  17.   

  18.   exti_configuration();


  19.   

  20.   nvic_configuration();

  21.  

  22.   

  23.   pwr_pvdlevelconfig(pwr_pvdlevel_2v9);// 设定监控阀值 


  24.   /* enable the pvd output */

  25.   pwr_pvdcmd(enable);// 使能pvd 

  26.   

  27.   while (1)

  28.   {

  29.   }

  30. }



  31. void exti_configuration(void)

  32. {

  33.   exti_inittypedef exti_initstructure;


  34.   

  35.   exti_clearitpendingbit(exti_line16); 

  36.   exti_initstructure.exti_line = exti_line16;// pvd连接到中断线16上 

  37.   exti_initstructure.exti_mode = exti_mode_interrupt;//使用中断模式 

  38.   exti_initstructure.exti_trigger = exti_trigger_rising_falling;//电压上升或下降越过设定阀值时都产生中断。

  39.   exti_initstructure.exti_linecmd = enable;// 使能中断线

  40.   exti_init(&exti_initstructure);// 初始

  41. }



  42. void nvic_configuration(void)

  43. {

  44.   nvic_inittypedef nvic_initstructure;

  45.   

  46.   

  47.   nvic_prioritygroupconfig(nvic_prioritygroup_1);//中断优先级配置 

  48.   

  49.    //设置pvd中断

  50.   nvic_initstructure.nvic_irqchannel = pvd_irqn;

  51.   nvic_initstructure.nvic_irqchannelpreemptionpriority = 0;

  52.   nvic_initstructure.nvic_irqchannelsubpriority = 0;

  53.   nvic_initstructure.nvic_irqchannelcmd = enable;

  54.   nvic_init(&nvic_initstructure);

  55. }

注意: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. stm_eval_ledtoggle(led1);

  6. exti_clearitpendingbit(exti_line16);

  7. }

  8. }


关键字:stm32  pvd  电源监测 

『本文转载自网络,皇冠最新app版本的版权归原作者所有,如有侵权请联系删除』

热门文章 更多
使用ni开发系统和amr系统实现自动化仪表读数系统的设计
网站地图