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