关于STM32的可编程电压检测器的使用方法

思维导图总览:

代码:

  1 #include "sys.h"
2 #include "delay.h"
3 #include "usart.h"
4 #include "led.h"
5 #include "oled.h"
6 #include "24cxx.h"
7 #include "w25qxx.h"
8
9 #include "key.h"
10 #include "adc.h"
11 #include "npa.h"
12 #include "bluetooth.h"
13 #include "rtc.h"
14
15 const u8 TEXT_Buffer[]={"SPI3 TEST"};
16
17 const u8 AT_Buffer[]={"AT\n\r"};
18 #define SIZE sizeof(TEXT_Buffer)
19 #define At_SIZE sizeof(AT_Buffer)
20
21 void PVD_Config(void);
22 int main(void)
23 {
24 PVD_Config();
25
26 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
27 delay_init(168); //初始化延时函数
28 //uart_init(115200); //初始化串口波特率为115200
29 //AT24CXX_Init();
30 LED_Init(); //初始化LED
31 oled_init();
32 //W25QXX_Init();
33 KEY_Init();
34 //Adc_Init();
35 // NPAsensor_Bar_Init();
36 LED_Init();
37 LED0=1;
38 //My_RTC_Init(); //初始化RTC
39 //RTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits,0); //配置WAKE UP中断,1秒钟中断一次
40
41 //BLUT_Init();
42 //BLUT_SW=0;
43
44
45 //oled_memery_clear(0x00);
46 oled_display_chs((unsigned char *)"ok:",0,0,16,0);
47 oled_display_refresh();
48
49
50
51
52
53 while(1)
54 {
55
56 if(PWR_GetFlagStatus(PWR_FLAG_PVDO)==RESET)
57 {
58 oled_display_chs((unsigned char *)"reset:",0,32,16,0);
59 oled_display_refresh();
60 }
61 else
62 {
63 oled_display_chs((unsigned char *)"set:",0,46,16,0);
64 oled_display_refresh();
65 }
66 }
67 }
68 /**
69 00083 * @brief Configures the PVD resources.
70 00084 * @param None
71 00085 * @retval None
72 00086 */
73 void PVD_Config(void)
74 {
75 NVIC_InitTypeDef NVIC_InitStructure;
76 EXTI_InitTypeDef EXTI_InitStructure;
77
78 /* Enable PWR clock */
79 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
80
81 /* Configure one bit for preemption priority */
82 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
83
84 /* Enable the PVD Interrupt */
85 NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;
86 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
87 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
88 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
89 NVIC_Init(&NVIC_InitStructure);
90 /* Configure EXTI Line16(PVD Output) to generate an interrupt on rising and
91 falling edges */
92 EXTI_ClearITPendingBit(EXTI_Line16);
93 EXTI_InitStructure.EXTI_Line = EXTI_Line16;
94 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
95 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;//change EXTI_Trigger_Rising_Falling
96 EXTI_InitStructure.EXTI_LineCmd = ENABLE;
97 EXTI_Init(&EXTI_InitStructure);
98
99 /* Configure the PVD Level to 3 (PVD detection level set to 2.5V, refer to the
100 electrical characteristics of you device datasheet for more details) */
101 PWR_PVDLevelConfig(PWR_PVDLevel_5);
102
103 /* Enable the PVD Output */
104 PWR_PVDCmd(ENABLE);
105 }
106
107 /******************************************************************************/
108 /* STM32F4xx Peripherals Interrupt Handlers */
109 /* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
110 /* available peripheral interrupt handler's name please refer to the startup */
111 /* file (startup_stm32f40xx.s.startup_stm32f427x.s). */
112 /******************************************************************************/
113
114 /**
115 * @brief This function handles the PVD Output interrupt request.
116 * @param None
117 * @retval None
118 */
119 void PVD_IRQHandler(void)
120 {
121 if(EXTI_GetITStatus(EXTI_Line16) != RESET)
122 {
123 /* Toggle LED1 */
124 // STM_EVAL_LEDToggle(LED1);
125 LED0=0;
126 oled_display_chs((unsigned char *)"low",0,16,16,0);
127 oled_display_refresh();
128
129
130
131 /* Clear the Key Button EXTI line pending bit */
132 EXTI_ClearITPendingBit(EXTI_Line16);
133 }
134 }

来源自 STM32官方的帮助文档,这部分资料在帮助文档中都有,而且有代码

关于STM32的可编程电压检测器的使用方法的更多相关文章

  1. Stm32外围模块编程初始化步骤

    Stm32外围模块编程初始化步骤: 一.外部中断 1)初始化 IO 口为输入. 这一步设置你要作为外部中断输入的 IO 口的状态,可以设置为上拉/下拉输入,也可以设置为浮空输入,但浮空的时候外部一定要 ...

  2. [转载]Javascript异步编程的4种方法

    NodeJs的最大特性就是"异步" 目前在NodeJs里实现异步的方法中,使用“回调”是最常见的. 其实还有其他4种实现异步的方法: 在此以做记录 --- http://www.r ...

  3. (转)javascript异步编程的四种方法

    本文转自:http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 作者:阮一峰 本文仅仅作为个人mark ...

  4. Javascript异步编程的4种方法

    你可能知道,Javascript语言的执行环境是"单线程"(single thread).   所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必 ...

  5. Javascript 异步编程的4种方法

    你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...

  6. C#脱离Halcon编程开发环境使用方法

    在没有安装Halcon开发程序(HDevelop (SSE2))的电脑上面编程,使C#脱离Halcon编程开发环境使用方法,除了按照Halcon与编程环境必须要做的设置步骤外,还需要做如下两个工作: ...

  7. Javascript 异步编程的4种方法详解

    你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...

  8. iOS开发之动画编程的几种方法

    iOS开发之动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKe ...

  9. 转:Javascript异步编程的4种方法

    你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...

随机推荐

  1. MySQL实战45讲,丁奇带你搞懂

    之前,你大概都是通过搜索别人的经验来解决问题.如果能够理解MySQL的工作原理,那么在遇到问题的时候,是不是就能更快地直戳问题的本质? 以实战中的常见问题为切入点,带你剖析现象背后的本质原因.为你串起 ...

  2. 「HTML+CSS」--自定义加载动画【015】

    前言 Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 哈哈 自我介绍一下 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入计算机 ...

  3. Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx

    第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...

  4. 我自横刀向天笑,手写Spring IOC容器,快来Look Look!

    目录 IOC分析 IOC是什么 IOC能够带来什么好处 IOC容器是做什么工作的 IOC容器是否是工厂模式的实例 IOC设计实现 设计IOC需要什么 定义接口 一:Bean工厂接口 二:Bean定义的 ...

  5. JVM调优基础到进阶

    GC和GC Tuning GC的基础知识 1.什么是垃圾 C语言申请内存:malloc free C++: new delete c/C++ 手动回收内存 Java: new ? 自动内存回收,编程上 ...

  6. Java Case Interview

    什么是面向对象? 面向对象和面向过程的区别: 面向过程更注重每一个步骤以及其顺讯,面向对象更注重哪些对象,他们具有哪些能力 面向过程比较直接,而面向对象更易于复用.扩展和维护 三大特性: 封装:内部细 ...

  7. 在Visual Studio 中使用git——使用git管理源代码(三)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二)   第三部分:使用git管理源代码 ...

  8. 1.6.1- HTML中ul元素无序列表的使用

    无序列表的各个列表项之间没有顺序级别之分,是并列的,语法如下: <ul> <li>列表项1</li> <li>列表项2</li> <l ...

  9. hdu4020简单想法题

    题意:       给你一些人,这些人有很多广告,每个广告有自己的点击率和长度,每次有m组询问,问每个人点击率前K名的广告的总长度是多少. 思路:       数据很大,很容易超时,总的想法还是先so ...

  10. hdu1251 hash或者字典树

    题意: 统计难题 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量 ...