查看: 2033|回复: 2

stm32的gpio函数介绍

[复制链接]
  • TA的每日心情
    慵懒
    2014-11-28 09:29
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-8-11 14:09:26 | 显示全部楼层 |阅读模式
    分享到:
    一、gpio_init函数 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
    调用时的格式一般是例如
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);//使能时钟
    GPIO_InitTypeDef  GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_Init(GPIOD,&GPIO_InitStructure);
    参数1是GPIO_TypeDef类型,如下,就是7个寄存器的地址。
    typedef struct
    {
      __IO uint32_t CRL;
      __IO uint32_t CRH;
      __IO uint32_t IDR;
      __IO uint32_t ODR;
      __IO uint32_t BSRR;
      __IO uint32_t BRR;
      __IO uint32_t LCKR;
    } GPIO_TypeDef;
    下面是宏定义
    #define GPIOD               ((GPIO_TypeDef *) GPIOD_BASE)
    #define GPIOD_BASE            (APB2PERIPH_BASE + 0x1400)
    #define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
    #define PERIPH_BASE           ((uint32_t)0x40000000)
    可以看出0x40000000是外设的首地址,在STM32芯片的内部STM32有两个,一个叫APB1,一个叫APB2
    参数2为GPIO_InitTypeDef* GPIO_InitStruct。就是一个指向GPIO _InitTypeDef的地址。
    typedef struct
    {
      uint16_t GPIO_Pin;
      GPIOSpeed_TypeDef  GPIO_Speed;  
      GPIOMode_TypeDef  GPIO_Mode;  
    }GPIO_InitTypeDef;

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-11-3 15:38
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-8-16 08:53:05 | 显示全部楼层
    这贴很水啊,,,,,,
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2017-12-19 21:23:35 | 显示全部楼层
    基础知识哪里去了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-25 00:04 , Processed in 0.164463 second(s), 21 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.