GPIO知识点整理
//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知识点整理的更多相关文章
- ACM个人零散知识点整理
ACM个人零散知识点整理 杂项: 1.输入输出外挂 //读入优化 int 整数 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch& ...
- Android 零散知识点整理
Android 零散知识点整理 为什么Android的更新试图操作必须在主线程中进行? 这是因为Android系统中的视图组件并不是线程安全的.通常应该让主线程负责创建.显示和更新UI,启动子线程,停 ...
- vue前端面试题知识点整理
vue前端面试题知识点整理 1. 说一下Vue的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫 ...
- kafka知识点整理总结
kafka知识点整理总结 只不过是敷衍 2017-11-22 21:39:59 kafka知识点整理总结,以备不时之需. 为什么要使用消息系统: 解耦 并行 异步通信:想向队列中放入多少消息就放多少, ...
- JSP页面开发知识点整理
刚学JSP页面开发,把知识点整理一下. ----------------------------------------------------------------------- JSP语法htt ...
- JS知识点整理(二)
前言 这是对平时的一些读书笔记和理解进行整理的第二部分,第一部分请前往:JS知识点整理(一).本文包含一些易混淆.遗漏的知识点,也会配上一些例子,也许不是很完整,也许还会有点杂,但也许会有你需要的,后 ...
- css入门知识点整理
css入门知识点整理 不要嘲笑我这个蒟蒻..例子来源:w3school css其实就分为两个东西,一个是选择器,另外一个是声明.声明定义了某个对象的属性的值,这都是html的内容.重点要关注的是选择器 ...
- activity生命周期知识点整理
activity生命周期知识点整理 Activity: 是一个应用组件,用户可与其提供的屏幕进行交互.窗口通常会充满屏幕,但也可以小于屏幕并浮动在其他窗口之上. 一个activity的什么周期: 启动 ...
- 【Android 面试基础知识点整理】
针对Android面试中常见的一些知识点整理,Max 仅仅是个搬运工.感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章.对于当中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正 ...
随机推荐
- Java 单字节、多字节读取文本文档中的内容
文本文档位于工程下. 鼠标右击工程,选择“new - File”,即可创建. 文本文档的格式:GBK 单字节读取 import java.io.File; import java.io.FileInp ...
- 简单(基本)的风光摄影照片后期处理-新手教程-ps照片后期基本处理
前言 Photoshop虽然不是万能的,但缺少Photoshop却是万万不能的!风光摄影不是一个记录过程,做到的不能仅仅是“拍到了”,我觉得应该是一个创作的过程,特别是在后期处理的过程中,创作意味更浓 ...
- css 清除浮动的几种方式
1.给浮动的元素的父级添加 overflow:hidden;属性 ul>不浮动 添加overflow:hidden; li>浮动 2.给浮动的元素的父级添加after伪类 ul:after ...
- 步步为营-77-Ajax简介
AJax:异步JavaScript和XML.Asynchronous JavaScript and XML 优点:无刷新 1 JavaScript下的Ajax 1.1 XMLHttpRequest对象 ...
- Nginx配置TCP请求转发
Nginx配置TCP请求转发 1.TCP请求转发基于stream在1.9版本前,需要单独编译安装该组建: # 依赖服务 [root@baolin conf]#yum -y install pcre-d ...
- 爬取豆瓣电影TOP 250的电影存储到mongodb中
爬取豆瓣电影TOP 250的电影存储到mongodb中 1.创建项目sp1 PS D:\scrapy> scrapy.exe startproject douban 2.创建一个爬虫 PS D: ...
- .NET Framework 类库——C#命名空间大全
引用地址:https://msdn.microsoft.com/zh-cn/library/gg145045.aspx C# using引用时,不知道有哪些命名空间,这下转载收集一篇,方面查找使用. ...
- vue中methods一个方法调用另外一个方法
转自http://blog.csdn.net/zhangjing1019/article/details/77942923 vue在同一个组件内: methods中的一个方法调用methods中的另外 ...
- Codeforces 420D Cup Trick 平衡树
Cup Trick 平衡树维护一下位置. #include<bits/stdc++.h> #include <bits/extc++.h> #define LL long lo ...
- jenkins(2): jenkins定时构建项目
参考:http://blog.sina.com.cn/s/blog_b5fe6b270102v7xo.html https://blog.csdn.net/xueyingqi/article/deta ...