K1 K2作为中断源控制红色LED灯,实现任意键按一下LED灯亮或者灭
#include "stm32f10x.h" // 相当于51单片机中的 #include <reg51.h>
#include "stm32f10x_gpio.h"
#include "stm32f10x_exti.h"
#include "misc.h"
/*
*K1 K2作为中断源控制红色LED灯,实现任意键按一下LED灯亮或者灭
*/
/*GPIO、NVIC、EXTI配置*/
int peizhi()
{ /*GPIO配置*/
// K1配置 PA0
GPIO_InitTypeDef a;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
a.GPIO_Speed=GPIO_Speed_50MHz;
a.GPIO_Pin=GPIO_Pin_5;
a.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&a); /*NVIC嵌套向量中断控制器*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitTypeDef b;
b.NVIC_IRQChannel = EXTI0_IRQn;//EXTI0_IRQn外部中断线0中断
b.NVIC_IRQChannelPreemptionPriority = ;//0 1 2 3 4
b.NVIC_IRQChannelSubPriority = ;//0 1 2 3 4
b.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&b); /*外部中断EXTI配置*/
EXTI_InitTypeDef c;
c.EXTI_Line=EXTI_Line0;//外部路线0 和13
c.EXTI_Mode=EXTI_Mode_Interrupt;//中断模式
c.EXTI_Trigger=EXTI_Trigger_Rising;//上升沿为中断请求
c.EXTI_LineCmd=ENABLE;//使能
EXTI_Init(&c);//指向结构体EXTI_InitTypeDef的指针a GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0);//选择GPIO管脚用作外部中断线路 //K2配置 PC13
//以下K2的配置基于K1配置的,就是说K2很多配置和K1相同的,只是把不同的配置写下来 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);
GPIO_Init(GPIOB,&a); b.NVIC_IRQChannel = EXTI15_10_IRQn;
NVIC_Init(&b); c.EXTI_Line = EXTI_Line13;
EXTI_Init(&c); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource13); } /*主函数*/
int main(void)
{
peizhi(); } /*中断服务函数*/
void EXTI0_IRQHandler(void)
{
//确保是否产生EXTI line中断
if(EXTI_GetITStatus(EXTI_Line0)!=RESET) // 检查指定的EXTI线路触发请求发生与否
{
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)==)//
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
} void EXTI15_10_IRQHandler(void)
{
//确保是否产生EXTI line中断
if(EXTI_GetITStatus(EXTI_Line13)!=RESET) // 检查指定的EXTI线路触发请求发生与否
{
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)==)//
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
EXTI_ClearITPendingBit(EXTI_Line13);
}
}
K1 K2作为中断源控制红色LED灯,实现任意键按一下LED灯亮或者灭的更多相关文章
- linux中断源码分析 - 中断发生(三)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 回顾 上篇文章linux中断源码分析 - 初始化(二)已经描述了中断描述符表和中断描述符数组的初始化,由于在初始 ...
- 【LeetCode】四数之和【排序,固定k1,k2,二分寻找k3和k4】
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...
- led指示灯电路图大全(八款led指示灯电路设计原理图详解)
led指示灯电路图大全(八款led指示灯电路设计原理图详解) led指示灯电路图(一) 图1所示电路中只有两个元件,R选用1/6--1/8W碳膜电阻或金属膜电阻,阻值在1--300K之间. Ne为氖泡 ...
- LED Decorative Light Supplier - Decorative Use Of LED Light Strips
Led strip refers to the led assembly in the ribbon of the FPC (flexible circuit board) or PCB hard b ...
- linux中断源码分析 - 软中断(四)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 在上一篇文章中,我们看到中断实际分为了两个部分,俗称就是一部分是硬中断,一部分是软中断.软中断是专门用于处理中断 ...
- linux中断源码分析 - 初始化(二)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 本篇文章主要讲述源码中是如何对中断进行一系列的初始化的. 回顾 在上一篇概述中,介绍了几个对于中断来说非常重要的 ...
- linux中断源码分析 - 概述(一)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 关于中断和异常 一般在书中都会把中断和异常一起说明,因为它们具有相同的特点,同时也有不同的地方.在CPU里,中断 ...
- Trap (陷入/中断) 源码解析
用户空间和内核空间之间的切换通常称为trap trap的三种形式 系统调用引发 异常发生 设备中断 (时间中断.IO中断.网络中断等) supervise mode的权限 用户态和内核态之间的到底有什 ...
- 斐讯K1 K2 开启Telnet
官方V21.4.5.5前的ROM,直接打开下边这个链接就直接开telnet了,然后就可以随便搞了 http://192.168.2.1/goform/gra_NTPSyncWithLocal?text ...
随机推荐
- delete web server(nginx)
#!/bin/bash conf_dir1="/usr/local/nginx/conf/vhost.d" #conf_dir2="/usr/local/apache2/ ...
- java运行环境增加字体
背景 今天在使用jfreeChart时,显示中文乱码,如下图: 环境:Ubuntu 13.04 64bit java7 tomcat 7.0.42 解决方法--增加系统字体 0. 安装环境包 su ...
- 实战--使用lvs实现四层负载均衡,转发到后端nginx
这个帖子讲得很细致,基本依照这个方案实践. 只是IP是按我自己虚拟机的IP来测试的. http://www.cnblogs.com/arjenlee/p/9262737.html ========== ...
- [转] React Hot Loader 3 beta 升级指南
前言 在用 react-hot-loader v1.3 的时候有些深层组件不会很完美的热更新(可能是我使用有问题).然后在 react-hot-loader 首页中看到 React Hot Loade ...
- sublime3 破解
—– BEGIN LICENSE —–TwitterInc200 User LicenseEA7E-8900071D77F72E 390CDD93 4DCBA022 FAF6079061AA12C0 ...
- [转]教你十分钟下载并破解IntelliJ IDEA(2017)
来源:http://www.itwendao.com/article/detail/400687.html 温馨提示:IntelliJ IDEA(2017)需要安装JDK8以上才能运行 如果你是JDK ...
- Nginx 拒接服务漏洞(CVE-2016-0747)整改
Nginx的拒绝服务漏洞主要影响版本为1.10.3之前的版本,为不影响原有nginx的使用,且为避免修改其它配置文件,可以通过编译nginx最新版本的执行文件去替换旧的执行文件,文中的场景为由ngin ...
- 一起学Hive——创建内部表、外部表、分区表和分桶表及导入数据
Hive本身并不存储数据,而是将数据存储在Hadoop的HDFS中,表名对应HDFS中的目录/文件.根据数据的不同存储方式,将Hive表分为外部表.内部表.分区表和分桶表四种数据模型.每种数据模型各有 ...
- 【Arduino】开发入门【十】Arduino蓝牙模块与Android实现通信
[Arduino]开发入门[十]蓝牙模块 首先show一下新入手的蓝牙模块 蓝牙参数特点 1.蓝牙核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机 ...
- 根据关键字找进程id
#!/usr/bin/pythonimport subprocessimport sysimport loggingimport os gameproc = "jd_5.py" d ...