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
之后就可以看到初始化的内容了