今天看到一篇很好的博文,,看这里:http://www.cnblogs.com/crazyxu/archive/2011/10/14/2212337.html

下面总结一下,加深一下理解。

要使用GPIO,首先要做五步工作:配置时钟并使能,选择引脚,配置引脚模式,配置引脚翻转速度,最后调用库函数初始化GPIO,将上面的配置写入。

首先要了解GPIO的8种模式,真多:

(1)浮空输入:In_Floating

(2)带上拉输入:IPU(In Push_Up)

(3)带下拉输入:IPD(In Push_Down)

(4)模拟输入:AIN(Anolog In)             查了一下,anolog是模拟的意思。

(5)开漏输出:OUT_PD(OD 代表开漏,既Open Drain,OC代表开集,Open Collect)

(6)推挽输出:OUT_PP(PP代表推挽式,Push_Pull)

(7)复用功能推挽输出:AF_PP(AF代表复用功能,Alternate-Fuction)

(8)复用功能开漏输出:AF_OD

现在没必要都知道,以后慢慢用到慢慢体会。

1、时钟配置的时候刚开始就是复制模板,如下:

/*开启GPIOB和GPIOF的外设时钟*/
RCC_APB2PeriphClockCmd( macLED1_GPIO_CLK|macLED2_GPIO_CLK|macLED3_GPIO_CLK, ENABLE); //使能时钟

RCC_APB2PeriphClockCmd()这个函数名字有点怪,它叫做使能或失能APB2外设时钟,不用管它,直接复制过来就行。括号里面就是使能的外设时钟。

2、好了,时钟配置好了,后面可以选择一下你要使用的管脚,多个管脚可以用或符号隔开。

/*选择要控制的GPIOB引脚*/
GPIO_InitStructure.GPIO_Pin = macLED1_GPIO_PIN;

3、好了,下面是配置引脚模式;

/*设置引脚模式为通用推挽输出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

4、下面就是设置引脚翻转速度了吧。

/*设置引脚速率为50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

5、最后一步,调用通用的库函数,将上面的配置写入芯片,初始化GPIO;

/*调用库函数,初始化GPIOB0*/
GPIO_Init(macLED1_GPIO_PORT, &GPIO_InitStructure);

到此为止,都属于GPIO配置函数里面的内容,配置完GPIO,就可以让他输出高低电平了。

先使用库函数,等库函数用熟练了在去看寄存器的内容,、。

GPIO_SetBits(GPIOD, GPIO_Pin_9);     这是将9号引脚置为高电平,

GPIO_ResetBits(GPIOD, GPIO_Pin_9);   低电平。

主要内容大概就是这样。

GPIO的配置过程的更多相关文章

  1. STM32f10xxx 之 GPIO口配置

    背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...

  2. STM32CubeMX新建工程+基本IO配置过程

    Ⅰ.写在前面 学习本文之前可以查看我前面的文章: STM32CubeMX介绍.下载与安装 STM32CubeMX使用方法及功能介绍 本文接着上一篇文章结合基本IO配置实例,讲述关于STM32CubeM ...

  3. Linux LVM逻辑卷配置过程详解

    许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...

  4. elasticsearch5.0.0 安装插件及配置过程

    elasticsearch5.0.0 安装插件及配置过程 由于es5.0是里程碑式的更新,所以很多变化的地方,暂时我就插件安装遇到的问题记录一下. 插件安装命令 2.3版本的安装命令 安装Marvel ...

  5. Silicon C8051F340之GPIO口配置与使用

    一.背景: 很久前用过C8051,现在有相关需求需要重新使用C8051,然后发现一年前开发的相关经验都忘得 基本上差不多了.连最基本的GPIO口配置还得重新来看手册,所以有此文,做个记录,以备下次快速 ...

  6. synergy 两台Windows电脑配置过程

    Synergy 介绍 软件作用 Synergy 两台独立电脑,共享一套鼠标和键盘的工具, 软件原理(我自己想的) 保证两台电脑在一个局域网内,可以相互Ping通的电脑(这样才能直接通过TCP连接) 将 ...

  7. 图解MySQL5.5详细安装与配置过程

    MySQL是一个开源的关系型数据库管理系统,原由瑞典MySQL AB公司开发,目前属于Oracle公司旗下.MySQL是目前世界上开源数据库中最受欢迎的产品之一,是应用最为广泛的开源数据库.MySQL ...

  8. tesseract配置过程

    tesseract配置过程: 1. 为了避免配置环境变量,可以先下载一个 tesseract-ocr-setup-3.02.02.exe(tesseract配置文件夹里有),然后安装(假设安装目录为D ...

  9. [转]caffe的配置过程

    caffe的配置过程 转:http://blog.csdn.net/brightming/article/details/51106629   版权声明:本文为博主原创文章,欢迎转载!转载请写明原文链 ...

随机推荐

  1. css3滚动效果

    .css{ -webkit-transition-duration: .3s;    transition-duration: .3s; }

  2. Java面试14|Session与Cookie

    1.在分布式环境,管理Session通常使用下面三种方式: (1)Session Replication 方式管理 (即session复制) 将一台机器上的Session数据广播复制到集群中其余机器上 ...

  3. 1342: [Baltic2007]Sound静音问题

    1342: [Baltic2007]Sound静音问题 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 710  Solved: 307[Submit][ ...

  4. 基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别

    还是基于上次那个练习的后续出现的思考,http://www.cnblogs.com/8013-cmf/p/6555790.html 界面: 源码: 写法如下:  继续解释这两种的区别: 1.其实基于定 ...

  5. 【iOS】7.4 定位服务->2.1.3.1 定位 - 官方框架CoreLocation 功能1:地理定位

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...

  6. php文件基本操作与文件管理功能

    文件的基本操作 先来看一下PHP文件基础操作,请看强大注释 <body> <?php var_dump(filetype("./img/11.png")); // ...

  7. layer插件

    最近在做公司的官网,其中有用到layer这款插件,以前没有接触过,不过学下来觉得好用好学.下面分享一下我的学习心得. layer是web弹出层组件.在官网下载好layer后,把他部署到你的项目文件中( ...

  8. js 的DOM操作 2017-03-21

    DOM(document object model) 文档对象模型 BOM(browse object model) 针对浏览器(如:弹出的窗口,滚动条等) 一.操作对象(注意大小写:注意elemen ...

  9. 对VC++6.0爱得深沉(三)静态库的制作与使用

    [创建] 1)建立新工程(win32静态库) (2)加入.h文件于.cpp文件如图. 3)编译-构建,生成.lib文件 [使用] 1)新建普通控制台程序 2)打开项目文件夹与刚才生成的库文件夹 3)方 ...

  10. spring-mvc-两个个小例子

    1.用Eclipse创建一个工程,命名为spring2.0 并添加相应的jar包(我用的是4.0.5的版本)到 lib 包下: spring-webmvc-4.0.5.RELEASE.jar spri ...