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