STM32cubeIDE初始化之IO口初始化

我们都了解stm32cubeide可以通过配置图形化界面然后直接调用函数就好了。但是做项目的时候,有些特殊情况就不能更改图形化界面,这时候我们就需要自己写初始化函数了.

一个技巧就是可以新建一个工程就是自己对应的芯片 然后根据需求进行配置 通过配置 系统会生成初始化内容 然后直接复制粘贴即可 这里简单介绍一下初始化内容的含义

GPIO
void MX_GPIO_Init(void);
                 GPIO_InitTypeDef GPIO_InitStruct;                    //定义初始化结构体
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA时钟
    
    GPIO_InitStruct.GPIO_Mode    = GPIO_Mode_Out_PP;     //配置模式     推挽输出/开漏输出
    GPIO_InitStruct.GPIO_Pin     = GPIO_Pin_0;           //配置哪个IO口
    GPIO_InitStruct.GPIO_Speed   = GPIO_Speed_50MHz;     //配置IO口速度,仅输出有效
    GPIO_Init(GPIOA,&GPIO_InitStruct);                   //初始化GPIOA的参数为以上结构体

例子:GPIO_InitTypeDef GPIO_InitStruct = {0};//  //定义初始化结构体
__HAL_RCC_GPIOE_CLK_ENABLE();//使能GPIOE时钟
E9
 HAL_GPIO_WritePin(GPIOE, GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_13, GPIO_PIN_RESET);//写低电平
PIO_InitStruct.Pin = GPIO_PIN_9;                                    //配置哪个IO口
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;      //配置模式  推挽输出
  GPIO_InitStruct.Pull = GPIO_NOPULL;                              //上拉下拉电阻      上拉电阻/下拉电阻/无上拉或下拉
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;              //配置IO口速度,仅输出有效
  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);                         //初始化GPIOA的参数为以上结构体
E11
  GPIO_InitStruct.Pin = GPIO_PIN_11;                                  //配置哪个IO口
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;          //配置模式 开漏输出
  GPIO_InitStruct.Pull = GPIO_PULLUP;                                  // 上拉下拉电阻      上拉电阻/下拉电阻/无上拉或下拉
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;       //配置IO口速度,仅输出有效
  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);                           //初始化GPIOA的参数为以上结构体

通过图形化界面就可以看到对应的初始化函数

调用方法找到上面的

 配置了系统会生成 然后选中 gpio.h 然后右键点击 选中open declaration就可以看到gpio.h的具体文件 然后在里面就可以找到初始化函数

 

 一样的方法 选中这个函数 然后右键选中open declaration

之后就可以看到初始化的内容了