2回答

1收藏

stm32的gpio函数介绍

STMCU STMCU 2270 人阅读 | 2 人回复 | 2017-08-11

一、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;

关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

回答|共 2 个

倒序浏览

沙发

糯米团

发表于 2017-8-16 08:53:05 | 只看该作者

这贴很水啊,,,,,,
板凳

feixiang20

发表于 2017-12-19 21:23:35 | 只看该作者

基础知识哪里去了
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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