#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. Go如何正确的使用mysql driver

    具体文章查看: https://xiequan.info/go%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A1%AE%E7%9A%84%E4%BD%BF%E7%94%A8mysql- ...

  2. axure—日期函数

    日期函数 日期函数中实现倒计时的关键点:1)gettime()函数可以取到1970年1月1日的时间,我们用倒计时结束的时间减去当前时间就能得到倒计时需要循环显示的所有时间.2)此处的“d”是倒计时结束 ...

  3. servlet保存会话数据---利用隐藏域

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletExcep ...

  4. 20165206 2017-2018-2 《Java程序设计》第6周学习总结

    20165206 2017-2018-2 <Java程序设计>第6周学习总结 教材学习内容总结 String类:可以被直接使用,不可以有子类. String对象:可以使用String类声明 ...

  5. Zabbix 3.2.6通过SNMP和iDRAC监控DELL服务器

    https://www.cnblogs.com/saneri/p/7772641.html

  6. mycat配置文件备份

    schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd&q ...

  7. Visual Studio "14" CTPs

    下载地址:http://www.visualstudio.com/en-us/downloads/visual-studio-14-ctp-vs       上张有亮点的图: 实现亮点的方法(Remo ...

  8. webstorm我用到的快捷键【不断更新】

    alt+insert:新建一个文件或其他 ctrl+shift+l:代码格式化 [可能会和qq的锁屏键冲突] ctrl+shift+r:批量查找替换 多点编辑:按住alt键选择多列,就可以编辑多行了 ...

  9. windows下面使用nssm设置新的服务实现开机自启等

    1.下载: http://nssm.cc/download/?page=download 2.解压: 根据自己的系统选择相应的32bit或者64bit,然后将相应的可执行文件拷贝到系统环境中.配置环境 ...

  10. net core体系-2继续认识net core

    认识net core,net core到底啥?从哪说起呢?我想作为开发的码农,web项目不陌生吧,那就从对应的.net web 对应的net core Web Application项目开始吧. 下面 ...