- 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