今天看到一篇很好的博文,,看这里: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. 向上管理(manage up)的的五条原则

    绝大多数的工程师很可能很少关注代码之外的能力,摸爬滚打了将近10年后,我才领悟到除了技术之外还有一项最重要的修炼,那就是"领导与被领导"学(其中包含了换位思考,但不局限于换位思考) ...

  2. 2017-02-23 switch case 循环语句

    另一个分支语句:switch..case.. switch(变量){    case 值:代码段;break;    case 值:代码段;break;    ...    default:代码段;b ...

  3. Mac上关于shell使用Python3和C++11声明

    1.使用Python3 Mac上的shell上自带的Python版本是2.7,当需要使用Python3时,下载安装好Python时,在shell上敲入Python发现却还是显示Python2.7,这是 ...

  4. CoreAnimation 寄宿图

    #CoreAnimation 寄宿图 寄宿图:图层中所包含的图 by:旭宝爱吃鱼 针对于寄宿图我在这里只讨论contents属性以及Custom Drawing. contents content:内 ...

  5. 很污的机器学习:从xhamster网站找到喜欢的片子

    前言 最近迷上了看黄片(大雾).每次总是去搜索想看的片子,什么asian porn anal pussy 什么的我都不知道. 搜索着搜索着我手也累了,而且我喜欢的片子也是有一定的特征的,我不想把所有的 ...

  6. Flex表格中添加图片

      Flex4.5中datagrid加入图片显示image <s:DataGrid id="maingrid" x="0" y="36" ...

  7. MySql Table错误:is marked as crashed and last (automatic?) 和 Error: Table "mysql"."innodb_table_stats" not found

    一.mysql 执行select 的时候报Table错误:is marked as crashed and last (automatic?) 解决方法如下: 找到mysql的安装目录的bin/myi ...

  8. (转)cacti无图无数据等常见问题排查

    推荐阅读:零基础学习Nagios http://www.51ou.com/browse/nagios/52001.htmlNagios安装配置教程 http://www.51ou.com/browse ...

  9. spring(一) IOC讲解

    spring基本就两个核心内容,IOC和AOP.把这两个学会了基本上就会用了. --WH 一.什么是IOC? IOC:控制反转,通俗点讲,将对象的创建权交给spring,我们需要new对象,则由spr ...

  10. 虚拟机Linux 的一些基础命令和注释

    cd命令 cd    ==回到初始,主目录 cd -  ==回到上一级目录交替 cd ~ ==回到root家目录 cd .  ==当前目录 cd .. ==进入上一级目录 ls命令 ls     == ...