• 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);   低电平。

    主要内容大概就是这样。

  • 相关阅读:
    cloudstack secondary vm starting
    什么东西有机会
    ansible 远程以普通用户执行命令
    python 爬虫--同花顺-使用代理
    python3 Beautifulsoup <class 'bs4.element.ResultSet'> <class 'bs4.element.Tag'> 取值
    python3 raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 403: Forbid
    kubernetes 生命周期问题分析
    'utf-8' codec can't decode byte 0xbc in position 1182: invalid start byte
    找回Firefox4的状态栏!Status-4-Evar扩展
    生命周期和Zend引擎
  • 原文地址:https://www.cnblogs.com/qsyll0916/p/6243040.html
Copyright © 2020-2023  润新知