//GPIO的作业,抄两次,注意:本文件是知识点的整理不是可以直接运行的程序。

 //STM32必须包含的头文件
#include "stm32f10x.h"
//GPIO相关头文件
#include "stm32f10x_gpio.h"
//外部中断相关头文件
#include "stm32f10x_exti.h"
//内核相关的头文件,NVIC在这里
#include "misc.h" /*GPIO配置使用步骤
1.使能,调用函数:
RCC_APB2PeriphClockCmd(
RCC_APB2Periph_外设名,ENABLE);
第一个参数是挂载在APB2总线下面的外设
第二个参数是允许(ENABLE)或不允许(DISABLE) 2.定义GPIO配置结构体的变量
GPIO_InitTypeDef a;
//这里若把GPIO改为
//NVIC、TIM、I2C等就是
//其他的外设配置结构体
a.GPIO_Pin = GPIO_Pin_5;//GPIO的5号引脚
a.GPIO_Speed = GPIO_Speed_50MHz;//速度
a.GPIO_Mode = GPIO_Mode_Out_PP;//工作方式(推挽输出) 3.调用函数初始化GPIO
GPIO_Init(GPIOB,&a);//这里要传入a的地址 4.以上步骤GPIO就配置完成了,下面可以赋值
//设置PB5为低电平
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
//设置PB5为高电平
GPIO_SetBits(GPIOB,GPIO_Pin_5); */
//实例:点亮红色LED,把PB5设置为低电平
RCC_APB2PeriphClockCmd(
RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitTypeDef a;
a.GPIO_Pin = GPIO_Pin_5;
a.GPIO_Speed = GPIO_Speed_50MHz;
a.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&a);
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //按键接到PA0引脚,按键按下灯亮,松开熄灭
while(){
//读取引脚的电平
int i = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);
if(i == ){
//按键按下了
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}else{
//按键松开
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
} //按键实现每按一次灯的电平状态翻转
int pre = ;//上一次循环按键的电平
while(){
//读取引脚的电平
int states = GPIO_ReadInputDataBit(
GPIOA,GPIO_Pin_0);
if(states == && pre == ){
//按键刚松开那一刻,states马上变为0,但是
//上一次循环中给pre赋的值还是1
if(GPIO_ReadInputDataBit(
GPIOB,GPIO_Pin_5) == ){
GPIO_SetBits(GPIOB,GPIO_Pin_5);
}else{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
}
pre = states;//把本次循环按键的电平赋值给上一次
}

GPIO知识点整理的更多相关文章

  1. ACM个人零散知识点整理

    ACM个人零散知识点整理 杂项: 1.输入输出外挂 //读入优化 int 整数 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch& ...

  2. Android 零散知识点整理

    Android 零散知识点整理 为什么Android的更新试图操作必须在主线程中进行? 这是因为Android系统中的视图组件并不是线程安全的.通常应该让主线程负责创建.显示和更新UI,启动子线程,停 ...

  3. vue前端面试题知识点整理

    vue前端面试题知识点整理 1. 说一下Vue的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫 ...

  4. kafka知识点整理总结

    kafka知识点整理总结 只不过是敷衍 2017-11-22 21:39:59 kafka知识点整理总结,以备不时之需. 为什么要使用消息系统: 解耦 并行 异步通信:想向队列中放入多少消息就放多少, ...

  5. JSP页面开发知识点整理

    刚学JSP页面开发,把知识点整理一下. ----------------------------------------------------------------------- JSP语法htt ...

  6. JS知识点整理(二)

    前言 这是对平时的一些读书笔记和理解进行整理的第二部分,第一部分请前往:JS知识点整理(一).本文包含一些易混淆.遗漏的知识点,也会配上一些例子,也许不是很完整,也许还会有点杂,但也许会有你需要的,后 ...

  7. css入门知识点整理

    css入门知识点整理 不要嘲笑我这个蒟蒻..例子来源:w3school css其实就分为两个东西,一个是选择器,另外一个是声明.声明定义了某个对象的属性的值,这都是html的内容.重点要关注的是选择器 ...

  8. activity生命周期知识点整理

    activity生命周期知识点整理 Activity: 是一个应用组件,用户可与其提供的屏幕进行交互.窗口通常会充满屏幕,但也可以小于屏幕并浮动在其他窗口之上. 一个activity的什么周期: 启动 ...

  9. 【Android 面试基础知识点整理】

    针对Android面试中常见的一些知识点整理,Max 仅仅是个搬运工.感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章.对于当中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正 ...

随机推荐

  1. IDEA的debug操作

  2. python-中缀表达式转前缀表达式

    作完了中缀前缀,作一个归纳吧. https://www.cnblogs.com/unixfy/p/3344550.html # coding = utf-8 class Stack: def __in ...

  3. zTree的使用教程

    1.首先去官网下载http://www.ztree.me/v3/main.php#_zTreeInfo 2.之后引入: <script src="js/jquery.ztree.all ...

  4. bzoj4520【CQOI2016】K远点对

    题解: kd-tree裸题 对每个点维护最近的k个开个堆维护一下

  5. P4715 「英语」Z 语言

    题解: 平衡树维护hash值 为了支持加入删除操作 x*base^y 其中y为他是第k大 同一般的维护方法,我们不用对每个节点维护他的hash值 而是只用记录他的x值(他的位置) 然后通过updata ...

  6. Python 命令模式和交互模式

    命令模式 在系统CMD命名模式下执行 命令执行到脚本所在目录 执行python Test.py 可直接一次执行完脚本里面所有的语句 交互模式下 一行一行执行

  7. nginx 源码安装的重启命令

    源码安装nginx就面临这样的麻烦,不能使用service nginx restart 来重启nginx,没办法只能重新加载下nginx. #/usr/local/nginx/sbin/nginx - ...

  8. twitter typeahead控件使用经历

    typeahead控件可以用于自动完成这个功能,在jQuery的UI中也有自动完成的控件.以前都是用jQuery UI中的自动完成的控件,但这次想用个轻量级的自动完成的控件,因此就调查了一下typeh ...

  9. 一起学Hadoop——实现两张表之间的连接操作

    ---恢复内容开始--- 之前我们都是学习使用MapReduce处理一张表的数据(一个文件可视为一张表,hive和关系型数据库Mysql.Oracle等都是将数据存储在文件中).但是我们经常会遇到处理 ...

  10. @+id/和android:id有什么区别?

    Any View object may have an integer ID associated with it, to uniquely identify the View within the ...