zoukankan      html  css  js  c++  java
  • GPIO的配置过程

    今天看到一篇很好的博文,,看这里: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);   低电平。

    主要内容大概就是这样。

  • 相关阅读:
    通过10g新特性得到PGA的调整建议
    震惊世界的中国秘方
    双休
    诺基亚的使用口令
    甲骨文承诺支持Sun硬件业务 闭口不谈MySQL
    ORACLE ERP 的前世今生
    企业渠道扩张千万别盲目
    已加密的pdf文件的解密方法
    AJAX跨域笔记
    php Could not execute xxx:__conroller
  • 原文地址:https://www.cnblogs.com/qsyll0916/p/6243040.html
Copyright © 2011-2022 走看看