当前位置: 首页 > news >正文

win7云主机怎么做网站金融 网站 模板

win7云主机怎么做网站,金融 网站 模板,wordpress dux 邮件,网站 所有权STM32 PVD掉电检测功能的使用方法 前言 在实际应用场景中#xff0c;可能会出现设备电源电压异常下降或掉电的情况#xff0c;因此#xff0c;有时候需要检测设备是否掉电#xff0c;或者在设备掉电的瞬间做一些紧急关机处理#xff0c;比如保存重要的用户数据#xff…STM32 PVD掉电检测功能的使用方法 前言 在实际应用场景中可能会出现设备电源电压异常下降或掉电的情况因此有时候需要检测设备是否掉电或者在设备掉电的瞬间做一些紧急关机处理比如保存重要的用户数据记录运行时间紧急通知其他平台等等。 1 PVD简介 1.1 工作原理 STM32本身内置了一种掉电检测机制——PVD(Programmable Voltage Detecter)即可编程电压检测器。 其原理是通过PVD监测电压变化并提前设定好一个基准电压当芯片的供电电压高于或低于该基准电压时便产生PVD中断在PVD中断里面就可以做一些紧急处理。 PVD门限阀值如下图所示 1.2 软件配置步骤 1、初始化配置PVD参数。 2、在中断函数加入紧急处理代码。 PVD参数具体配置如下 通过配置电源/状态控制寄存器(PWR_CSR)和电源控制寄存器(PWR_CR)来监控电源电压。 电源控制寄存器(PWR_CR)如下 其中PLS[2:0]这几位选择监控电压的阀值。PVDE位用来使能PVD。 电源/状态控制寄存器(PWR_CSR)如下 其中PVDO标志用来表明VDD是高于还是低于PVD的电压阀值。 PVD事件在内部连接到外部中断的第16线如果该中断在外部中断寄存器中是使能的该事件就会产生中断。当VDD下降到PVD阀值以下和(或)当VDD上升到PVD阀值之上时根据外部中断第16线的上升/下降边沿触发设置就会产生PVD中断。通过这一特性可将PVD用于用于执行紧急关闭任务。 1.3 注意事项 1、如果项目使用了多个外设中断要注意PVD中断的优先级。 2、注意紧急处理代码的执行时间要在MCU电压降到完全不能工作前执行完可以通过调整PVD阈值电压或者在MCU供电电源处加大电容以延缓掉电时间。 3、PVD的阀值触发有100mV的迟滞可能是为了消抖详见上面的PVD门限阀值图因此设置阀值时最好留一点余量。 4、如果PVD中断触发方式使用上升下降沿触发在电压不稳定的情况下可能会反复触发中断此时可以通过设置标志位来保证紧急代码只运行1次。 2 程序编写 参考测试代码 /*** brief This function handles the PVD Output interrupt request.* param None* retval None*/ void PVD_IRQHandler(void) {if(EXTI_GetITStatus(EXTI_Line16) ! RESET){/* 掉电时运行的紧急代码 */printf(low power.\n);/* Clear the Key Button EXTI line pending bit */EXTI_ClearITPendingBit(EXTI_Line16);} }/*** brief Configures EXTI Lines.* param None* retval None*/ void EXTI_Configuration(void) {EXTI_InitTypeDef EXTI_InitStructure;/* Configure EXTI Line16(PVD Output) to generate an interrupt on rising and falling edges */EXTI_ClearITPendingBit(EXTI_Line16);EXTI_InitStructure.EXTI_Line EXTI_Line16;EXTI_InitStructure.EXTI_Mode EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger EXTI_Trigger_Rising_Falling;EXTI_InitStructure.EXTI_LineCmd ENABLE;EXTI_Init(EXTI_InitStructure); }/*** brief Configures NVIC and Vector Table base location.* param None* retval None*/ void NVIC_Configuration(void) {NVIC_InitTypeDef NVIC_InitStructure;/* Configure one bit for preemption priority */NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);/* Enable the PVD Interrupt */NVIC_InitStructure.NVIC_IRQChannel PVD_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority 0;NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;NVIC_Init(NVIC_InitStructure); }void PVD_Init(void) { /* Enable PWR and BKP clock */RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);/* Configure EXTI Line to generate an interrupt on falling edge */EXTI_Configuration();/* NVIC configuration */NVIC_Configuration();/* Configure the PVD Level to 2.9V */PWR_PVDLevelConfig(PWR_PVDLevel_2V9);/* Enable the PVD Output */PWR_PVDCmd(ENABLE); }int main(void) { uart_init(115200);PVD_Init();printf(init success.\n);while (1){} }示例代码测试结果 结束语 上面的测试例子只是给大家做一个参考实际上需要根据项目的具体需求去补充细节这里就不再多说了。 好了关于STM32如何使用PVD掉电检测功能就介绍到这里如果你们还有什么问题欢迎评论区留言。 如果这篇文章能够帮到你就…懂的。
http://wiki.neutronadmin.com/news/419767/

相关文章:

  • 哇塞fm网站维护怎么做网页app
  • 连云港专业做网站摄影网站源码 免费下载
  • 手机网站与电脑网站兼容网站地图怎么添加
  • 全国做网站的大公司开发商不给办房产证怎么办
  • 网络营销资格证网络营销证书长沙seo男团
  • 网页设计感十足的网站上海企业网站模板建站平台
  • 网站建设 业务培训福建微网站建设公司
  • 做网站多少钱西宁君博专注交互网站开发
  • 自助建站系统免费模式搭建一个商城需要多少钱
  • 网站设计开发团队网站集约化建设试点
  • 创建个网站需要多少钱sem分析是什么意思
  • 网站建设 软件开发骏域网络
  • 网站常用参数海尔网站建设不足之处
  • 宠物网站建设费用深圳专业网站制作平台
  • 网站建设仟金手指专业15马云将来淘汰的十个行业网站建设
  • 三沙网站设计公司怎样开公众号
  • 锡林浩特本地网站建设在线建筑设计
  • 网站营销特点网站设计经典案例
  • 做教学的视频网站有哪些问题对网站建设有什么样好的建设意见
  • 大型网站建设公司 北京西宁专业做网站的
  • 长沙网站维护钦州网站建设设计
  • 樟树市城乡规划建设局网站网站收录排名
  • 做网站服务器多钱服务器关闭 网站被k
  • 网站轮播怎么做站长工具seo诊断
  • 做网站定金一般多少wordpress去掉首页
  • 做网站字体规范聊城广告设计公司
  • mt4外汇金融网站建设百度极简网址
  • php是做网站还是网页东营港经济开发区
  • 永久免费自助建站源代码营销推广主要包括
  • 网站首页制作采用深圳做网站得外包公司有哪些