#include "stm32f10x.h"
#include "stm32f10x_gpio.h" //内核,(NVIC)
#include "misc.h" //点亮红色灯 PB5
//step1:使能
Rcc_APB2PeriPhClockCmd(
Rcc_APB2PeriPh_GPIOB,ENABLE);
//step2:定义GPIO初始化结构体变量
GPIO_InitTypeDef a;
a.GPIO_Speed = GPIO_Speed_50MHz;
a.GPIO_Pin = GPIO_Pin_5;
//推挽输出
a.GPIO_Mode = GPIO_Mode_OUT_PP;
//step3:调用GPIO初始化函数
GPIO_Init(GPIOB,&a);
//step4:设置PB5为低电平
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //读取引脚的电平
int i = GPIO_ReadDataInputBit(
GPIOB,GPIO_Pin_5); /*按键初始化*/
Rcc_APB2PeriPhClockCmd(
Rcc_APB2PeriPh_GPIOA,ENABLE);
//step2:定义GPIO初始化结构体变量
GPIO_InitTypeDef a;
a.GPIO_Speed = GPIO_Speed_50MHz;
a.GPIO_Pin = GPIO_Pin_0;
//浮空输入
a.GPIO_Mode = GPIO_Mode_IN_FLOATING;
//step3:调用GPIO初始化函数
GPIO_Init(GPIOA,&a); /*循环读取按键 PA0*/
while(){
int i = GPIO_ReadDataInputBit(
GPIOB,GPIO_Pin_5);
if(i == ){
//按键按下,点亮LED
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}else{
//松开,熄灭灯
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
}
while(){
if(GPIO_ReadDataInputBit(
GPIOA,GPIO_Pin_0) == ){
//按键按下进入这里执行
if(GPIO_ReadDataInputBit(
GPIOB,GPIO_Pin_5) == ){
//每按一次,灯的状态反转
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}else{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
}
} /*NVIC*/
//step1:优先级分组
NVIC_PriorityGroupConfig(
NVIC_PriorityGroup_1;
);
//step2:NVIC初始化结构体
NVIC_InitTypeDef b;
//中断源
b.NVIC_IRQChannel = EXTI0_IRQn;
//抢占优先级
b.NVIC_IRQChannelPreemptionPriority = ;
//子优先级
b.NVIC_IRQChannelSubPriority = ;
//使能
b.NVIC_IRQChannelCmd = ENABLE;
//step3:NVIC初始化函数
NVIC_Init(&b); //中断处理函数
void 中断名_IRQHandler(){
}
void EXTI0_IRQHandler(){ }
 #include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_exti.h" //内核,(NVIC)
#include "misc.h" //点亮红色灯 PB5
//step1:使能
Rcc_APB2PeriPhClockCmd(
Rcc_APB2PeriPh_GPIOB,ENABLE);
//step2:定义GPIO初始化结构体变量
GPIO_InitTypeDef a;
a.GPIO_Speed = GPIO_Speed_50MHz;
a.GPIO_Pin = GPIO_Pin_5;
//推挽输出
a.GPIO_Mode = GPIO_Mode_OUT_PP;
//step3:调用GPIO初始化函数
GPIO_Init(GPIOB,&a);
//step4:设置PB5为低电平
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //读取引脚的电平
int i = GPIO_ReadDataInputBit(
GPIOB,GPIO_Pin_5); /*按键初始化*/
Rcc_APB2PeriPhClockCmd(
Rcc_APB2PeriPh_GPIOA,ENABLE);
//step2:定义GPIO初始化结构体变量
GPIO_InitTypeDef a;
a.GPIO_Speed = GPIO_Speed_50MHz;
a.GPIO_Pin = GPIO_Pin_0;
//浮空输入
a.GPIO_Mode = GPIO_Mode_IN_FLOATING;
//step3:调用GPIO初始化函数
GPIO_Init(GPIOA,&a); /*循环读取按键 PA0*/
while(){
int i = GPIO_ReadDataInputBit(
GPIOB,GPIO_Pin_5);
if(i == ){
//按键按下,点亮LED
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}else{
//松开,熄灭灯
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
}
while(){
if(GPIO_ReadDataInputBit(
GPIOA,GPIO_Pin_0) == ){
//按键按下进入这里执行
if(GPIO_ReadDataInputBit(
GPIOB,GPIO_Pin_5) == ){
//每按一次,灯的状态反转
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}else{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
}
} /*NVIC*/
//step1:优先级分组
NVIC_PriorityGroupConfig(
NVIC_PriorityGroup_1;
);
//step2:NVIC初始化结构体
NVIC_InitTypeDef b;
//中断源
b.NVIC_IRQChannel = EXTI0_IRQn;
//抢占优先级
b.NVIC_IRQChannelPreemptionPriority = ;
//子优先级
b.NVIC_IRQChannelSubPriority = ;
//使能
b.NVIC_IRQChannelCmd = ENABLE;
//step3:NVIC初始化函数
NVIC_Init(&b); //中断处理函数
void 中断名_IRQHandler(){
} void EXTI0_IRQHandler(){ } /*外部中断配置*/
//外部中断结构体
EXTI_InitTypeDef c;
c.EXTI_Line = EXTI_Line0;
c.EXTI_Mode = EXTI_Mode_Interrupt;
c.EXTI_Trigger = EXTI_Trigger_Rising;
c.EXTI_LineCmd = ENABLE;
//外部中断初始化函数
EXTI_Init(&c); //配置外部中断的触发引脚
GPIO_EXTILineConfig(
GPIOPortSourceGPIOC,GPIOPinSourcePin0
);
Rcc_APB2PeriPhClockCmd(
Rcc_APB2PeriPh_GPIOC,ENABLE);
GPIO_InitTypeDef a;
a.GPIO_Speed = GPIO_Speed_50MHz;
a.GPIO_Pin = GPIO_Pin_0;
//浮空输入
a.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOC,&a); void EXTI0_IRQHandler(){
GPIO_ResetBits(GPIOB,GPIO_Pin_5); 手动把中断标志位清零
EXTI_ClearITPendingBit(EXTI_Line0);
}

GPIOLED配置、key、中断NVIC配置的更多相关文章

  1. STM32 NVIC配置详解

    例程:  /* Configure one bit for preemption priority */  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1) ...

  2. NVIC配置中的分组详解

    在配置优先级的时候,要注意一个很重要的问题,中断种类的数量. NVIC只可以配置 16 种 中断向量的优先级,也就是说,抢占优先级和响应优先 级的数量由一个 4 位的数字来决定, 把这个 4 位数字的 ...

  3. Stm32CubeMX5 配置 外部中断

    实验使用连接PA8引脚的按键触发中断,外部中断使用双边沿触发,这样就可以检测按键按下与松开,当按键按下时点亮LED, 当按键松开是关闭LED,在中断服务函数中只置位相应的标志,在main函数中具体处理 ...

  4. 在线配置热加载配置 go-kratos.dev 监听key

    paladin https://v1.go-kratos.dev/#/config-paladin example Service(在线配置热加载配置) # service.go type Servi ...

  5. .NET Core采用的全新配置系统[1]: 读取配置数据

    提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化的配置定义在这两个文 ...

  6. .NET Core采用的全新配置系统[7]: 将配置保存在数据库中

    我们在<聊聊默认支持的各种配置源>和<深入了解三种针对文件(JSON.XML与INI)的配置源>对配置模型中默认提供的各种ConfigurationSource进行了深入详尽的 ...

  7. 两种交换机配置模式,以配置基于端口划分的VLAN为例

    关于交换机的配置模式,大体上可以分为两类:其一以CISCO交换机为代表的配置模式,其二以Huawei.H3C交换机为代表的配置模式.其实这两种配置模式并没有本质的不同,只是配置的命令名称和配置方式存在 ...

  8. apache 虚拟主机详细配置:http.conf配置详解

    apache 虚拟主机详细配置:http.conf配置详解 Apache的配置文件http.conf参数含义详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd. ...

  9. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

随机推荐

  1. appium如何解决每次都要安装apk的烦恼

    1.appium上勾选 No Reset 2.程序加上:capabilities.setCapability("noReset", true);   //不需要再次安装 3.命令行 ...

  2. meaven

    一个项目管理工具.java语言编写的,所以可以跨平台 https://mvnrepository.com/

  3. 【C++ Primer | 07】常用算法

    第一部分 常用泛型算法: find(beg, end, val); equal(beg1, end1, beg2); fill(beg, end, val); fill_n(beg, cnt, val ...

  4. C# 位移运算

    一:“<<”和“>>”运算符用于执行移位运算,分别称为左移位运算符和右移位运算符.对于X<<N和X>>N形式的运算,含义是将X向左或向右移动N位,得到的 ...

  5. 【Oracle】Linux7安装11g 86%报错:Error in invoking target 'agent nmhs' of makefile

    http://blog.itpub.net/29475508/viewspace-2120836/

  6. [转]10 Awesome Indicator Applets for Ubuntu’s Unity Desktop

    http://blogger.gtwang.org/2013/10/awesome-indicator-applets-for-ubuntus-unity-desktop.html http://ww ...

  7. 如何扩展Orchard

    翻译自: http://msdn.microsoft.com/en-us/magazine/hh708754.aspx     动态类型系统 Content item是Orchard中的原子, 比如b ...

  8. bootstrap下jQuery自动完成的样式调整-【jQuery】

    1. 覆盖层调整 在bootstrap的对话框中,当其中的输入项使用了自动完成控件,则其中下拉框中的内容就会被bootstrap对话框的覆盖层遮盖. 为了能够使后面的自动完成的层显示出来,可以使用如下 ...

  9. git branch & checkout fetch 的使用和冲突解决

    git branch & checkout fetch 的使用和冲突解决 branch git branch 查看本地分支 git branch -v    查看本地分支的具体信息(commi ...

  10. Tomcat启动分析(转自:http://docs.huihoo.com/apache/tomcat/heavyz/01-startup.html)

    Tomcat启动分析 1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servl ...