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

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