本章將介紹幾個在比賽中常見的函數,這幾個函數都是非常簡單,關系到LED,按鍵,繼電器等簡單的外設。
第一節HAL_GPIO_Init
函數原型:
voidHAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
函數解析:
這個是GPIO的初始化的函數,這個函數主要用來初始化我們需要用到的引腳的工作模式,包括具體引腳的工作速度、是否復用模式、上下拉等等參數。形參解析:
一共兩名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對GPIO的類型的定義,比如:GPIOA,GPIOC等等。
GPIO_InitTypeDef *GPIO_Init:該形參是對結構體GPIO_InitTypeDef的指針的初始化,包含了外設GPIO的配置信息,比如GPIO引腳,模式,速度等等。該配置信息如下:(見stm32l0xx_hal_gpio.h)
返回值:
void函數無返回值。
第二節HAL_GPIO_DeInit
函數原型:
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
函數解析:
該函數是承接HAL_GPIO_Init函數的,將初始化之后的引腳恢復成默認的狀態,即各個寄存器復位時的值。
形參解析:
一共兩名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對GPIO的類型的定義,比如:GPIOA,GPIOC等等。
uint32_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
void函數無返回值。
第三節HAL_GPIO_ReadPin
函數原型:
GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)
函數解析:
該函數是GPIO讀函數,將GPIO的電平狀態讀取出來,一般讀取之后,就明白該GPIO的狀態了。
形參解析:
一共兩名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對GPIO的類型的定義,比如:GPIOA,GPIOC等等。
uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
如果讀取到高電平,返回GPIO_PIN_SET;如果是低電平,返回GPIO_PIN_RESET。
第四節HAL_GPIO_WritePin
函數原型:
voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinState PinState);
函數解析:
該函數是GPIO寫函數,通過該函數操作GPIO的狀態。
形參解析:
一共三名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對GPIO的類型的定義,比如:GPIOA,GPIOC等等。
uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
GPIO_PinState PinState:該形參是對GPIO引腳的電平狀態的定義,如果是GPIO_PIN_SET,那么對該GPIO賦值為高電平;如果是GPIO_PIN_RESET,那么對該GPIO賦值為底電平。
返回值:
void函數無返回值。
第五節HAL_GPIO_TogglePin
函數原型:
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
函數解析:
該函數是GPIO引腳電平狀態的翻轉函數,通過該函數操作GPIO的電平的狀態的翻轉。
形參解析:
一共兩名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對GPIO的類型的定義,比如:GPIOA,GPIOC等等。
uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
void函數無返回值。
第六節HAL_GPIO_LockPin
函數原型:
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
函數解析:
該函數是GPIO引腳電平狀態的鎖存函數,使用該函數之后,將鎖定GPIO的狀態,寫函數也無法改變,除非重置。
形參解析:
一共兩名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對GPIO的類型的定義,比如:GPIOA,GPIOC等等。
uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
由結構體HAL_StatusTypeDef(如下圖,stm32l0xx_hal_def.h)可知,如果鎖存成功,返回HAL_OK(0x00U),如果失敗,返回HAL_ERROR(0x01U)。
需要注意的是,只能返回這兩種值,即使該寄存器有四個變量。為什么呢?仔細看HAL_GPIO_LockPin函數的最后看明白了。
第七節HAL_GPIO_EXTI_IRQHandler
函數原型:
voidHAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
函數解析:
外部中斷服務函數,用來響應外部中斷的觸發。
形參解析:
一共一名形參,該形參的具體功能如下:
uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
void函數無返回值。
第八節HAL_GPIO_EXTI_Callback
函數原型:
__weakvoid HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
函數解析:
該函數是回調函數,說白了就是中斷之后,需要什么功能,就寫在這個函數里面。至于__weak,它是一個弱化標識,帶有這個的函數就是一個弱化函數,就是你可以在其他地方寫一個名稱和參數都一模一樣的函數,編譯器就會忽略這一個函數,而去執行你寫的那個函數。
形參解析:一共一名形參,該形參的具體功能如下:
uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
該函數無返回值。
往期精彩
【1】【藍橋杯物聯網】第二章 軟件環境搭建
【2】【藍橋杯物聯網】第一章 了解開發板
【4】
【5】【藍橋杯單片機】第十六章 獨立按鍵(松開有效)
原文標題:【藍橋杯物聯網】第三章 stm32l0xx_hal_gpio.c的常見函數
文章出處:【微信公眾號:撞上電子】歡迎添加關注!文章轉載請注明出處。
-
藍橋杯
+關注
關注
1文章
123瀏覽量
10130
發布評論請先 登錄
相關推薦
評論