OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 214|回复: 0

请教f103怎么进入pvd模式,标题要满12字

[复制链接]

84

主题

347

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2008
金钱
2008
注册时间
2014-7-1
在线时间
189 小时
发表于 2025-3-5 08:41:09 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 shenqihao 于 2025-3-5 08:44 编辑

f103zet6怎么进不去pvd中断,请帮看看。
单片机供电从2V到3.6V,来回调整,也进不去。
测试方法
1、测试pc9引脚电压
2、调节电压后,仿真进去看看0X08070F00 的值。
  1. #include "pvd.h"
  2. #include "delay.h"
  3. #include "stmflash.h"
  4. #define FLASH_SAVE_PVDTest_ADDR                                                                0X08070F00                        //电量模式




  5. void write_PVDTest(u16 d);
  6. void write_PVDTest2(u16 d);

  7. //PVD初始化
  8. void PvdInit(void)
  9. {
  10.         
  11.         EXTI->IMR |=(1<<16);//开启PVD中断
  12.         EXTI->FTSR |=(1<<16);//下降沿触发
  13.         EXTI->RTSR |=(1<<16);//上升沿触发
  14.         
  15.         PWR->CR |= PWR_CR_PVDE;//使能PVD
  16.         PWR->CR &=0xFFFFFF1F;//
  17.         PWR->CR |=0xFFFFFF6F;//选择电压阈值,011是2.5V
  18.         MY_NVIC_Init(3,3,PVD_IRQn,2);//组2,抢占优先级为3,响应优先级为3
  19.         
  20.         
  21.         RCC->APB2ENR |=1<<4;//使能端口PORTC口时钟
  22.         
  23.         GPIOC->CRH &=0xFFFFFF0F;
  24.         GPIOC->CRH |=0x00000030;//PORTC9推挽输出
  25.         GPIOC->ODR |=(1<<9);//GPIOC9输出为0
  26. }


  27. //
  28. void PVD_IRQHandler(void)
  29. {
  30.         EXTI->PR=1<<16;     //
  31.         if((PWR->CSR&PWR_CSR_PVDO)==PWR_CSR_PVDO)//低于PVD阈值
  32.         {
  33.                 write_PVDTest(1);
  34.                 delay_ms(1);
  35.                 GPIOC->ODR &=~(1<<9);//GPIOC8输出为0
  36.         }
  37.         else//高于PVD阈值
  38.         {
  39.                 write_PVDTest2(2);
  40.                 delay_ms(1);
  41.                 GPIOC->ODR |=(1<<9);//GPIOC8输出为1
  42.         }
  43. }


  44. void write_PVDTest(u16 d)
  45. {
  46.         u16 datatemp[1];
  47.         datatemp[0]=d;
  48.         STMFLASH_Write(FLASH_SAVE_PVDTest_ADDR,(u16*)datatemp,1);
  49. }
  50. void write_PVDTest2(u16 d)
  51. {
  52.         u16 datatemp[1];
  53.         datatemp[0]=d;
  54.         STMFLASH_Write(FLASH_SAVE_PVDTest_ADDR+2,(u16*)datatemp,1);
  55. }
复制代码


做一个相信自己的人
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-3 02:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表