STM32 HAL库之GPIO配置

  • HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)

定义结构体变量

GPIO_InitTypeDef GPIO_InitStructure;                 //定义一个结构体变量

使能时钟

__HAL_RCC_GPIOA_CLK_ENABLE();                        //打开A端口时钟
__HAL_RCC_GPIOB_CLK_ENABLE();                        //打开B端口时钟

设置要用的是哪个引脚、引脚工作模式、上拉还是下拉、速度。

GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;               //复用功能推挽模式 
GPIO_InitStructure.Pull = GPIO_PULLUP;                   //上拉   
GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_HIGH;         //最大速度10MHz 
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_0;        //选择引脚B0、B1
HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);               //调用引脚初始化程序

配置多个管脚

GPIO_InitStructure.Pin = GPIO_PIN_7 | GPIO_PIN_6;        //选择引脚A6、A7
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);               //调用引脚初始化程序

设置引脚的初始化电平

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_SET);    //写引脚

注意事项

1.上拉下拉选择一定要根据外围设备来选择。
2.推挽输出:可以输出高,低电平,连接数字器件,
开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行.

参考

https://www.cnblogs.com/feipeng8848/p/7248898.html
https://blog.csdn.net/yyw_DavidYang/article/details/89493330
https://blog.csdn.net/qq_40662854/article/details/80253929

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章