本章將介紹幾個(gè)在比賽中常見(jiàn)的函數(shù),這幾個(gè)函數(shù)都是非常簡(jiǎn)單,關(guān)系到LED,按鍵,繼電器等簡(jiǎn)單的外設(shè)。
第一節(jié)HAL_GPIO_Init
函數(shù)原型:
voidHAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
函數(shù)解析:
這個(gè)是GPIO的初始化的函數(shù),這個(gè)函數(shù)主要用來(lái)初始化我們需要用到的引腳的工作模式,包括具體引腳的工作速度、是否復(fù)用模式、上下拉等等參數(shù)。形參解析:
一共兩名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對(duì)GPIO的類(lèi)型的定義,比如: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的類(lèi)型的定義,比如:GPIOA,GPIOC等等。
uint32_t GPIO_Pin:該形參是對(duì)GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
void函數(shù)無(wú)返回值。
第三節(jié)HAL_GPIO_ReadPin
函數(shù)原型:
GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)
函數(shù)解析:
該函數(shù)是GPIO讀函數(shù),將GPIO的電平狀態(tài)讀取出來(lái),一般讀取之后,就明白該GPIO的狀態(tài)了。
形參解析:
一共兩名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對(duì)GPIO的類(lèi)型的定義,比如: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ù)原型:
voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinState PinState);
函數(shù)解析:
該函數(shù)是GPIO寫(xiě)函數(shù),通過(guò)該函數(shù)操作GPIO的狀態(tài)。
形參解析:
一共三名形參,該形參的具體功能如下:
GPIO_TypeDef *GPIOx:該形參是對(duì)GPIO的類(lèi)型的定義,比如: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的類(lèi)型的定義,比如: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的類(lèi)型的定義,比如: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ù)原型:
voidHAL_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ù)原型:
__weakvoid 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è)名稱(chēng)和參數(shù)都一模一樣的函數(shù),編譯器就會(huì)忽略這一個(gè)函數(shù),而去執(zhí)行你寫(xiě)的那個(gè)函數(shù)。
形參解析:一共一名形參,該形參的具體功能如下:
uint16_t GPIO_Pin:該形參是對(duì)GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
該函數(shù)無(wú)返回值。

往期精彩
【1】【藍(lán)橋杯物聯(lián)網(wǎng)】第二章 軟件環(huán)境搭建
【2】【藍(lán)橋杯物聯(lián)網(wǎng)】第一章 了解開(kāi)發(fā)板
【3】藍(lán)橋杯單片機(jī)文檔教程免費(fèi)下載
【4】
【5】【藍(lán)橋杯單片機(jī)】第十六章 獨(dú)立按鍵(松開(kāi)有效)

原文標(biāo)題:【藍(lán)橋杯物聯(lián)網(wǎng)】第三章 stm32l0xx_hal_gpio.c的常見(jiàn)函數(shù)
文章出處:【微信公眾號(hào):撞上電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
藍(lán)橋杯
+關(guān)注
關(guān)注
1文章
130瀏覽量
10875
發(fā)布評(píng)論請(qǐng)先 登錄
探索STM32L072xx:超低功耗32位MCU的卓越之選
STM32L072xx 超低功耗32位MCU,基于ArmR的Cortex-M0+規(guī)格書(shū)
STM32L072xx:超低功耗32位MCU的設(shè)計(jì)指南與應(yīng)用潛力
STM32L072xx系列微控制器:低功耗設(shè)計(jì)的優(yōu)選之選
國(guó)民技術(shù)榮獲維科杯·OFweek 2025物聯(lián)網(wǎng)行業(yè)優(yōu)秀解決方案獎(jiǎng)
【「高速數(shù)字設(shè)計(jì)(基礎(chǔ)篇)」閱讀體驗(yàn)】+二三章閱讀
學(xué)習(xí)物聯(lián)網(wǎng)怎么入門(mén)?
詳解hal_entry入口函數(shù)
【「DeepSeek 核心技術(shù)揭秘」閱讀體驗(yàn)】第三章:探索 DeepSeek - V3 技術(shù)架構(gòu)的奧秘
初級(jí)工程師PCB設(shè)計(jì)技巧(PPT版)
復(fù)旦微低功耗mcuFM33A0xx系列代理供應(yīng)
《ESP32S3 Arduino開(kāi)發(fā)指南》第三章 C/C++語(yǔ)言基礎(chǔ)
第三章 開(kāi)發(fā)環(huán)境搭建
【藍(lán)橋杯物聯(lián)網(wǎng)】第三章 stm32l0xx_hal_gpio.c的常見(jiàn)函數(shù)
評(píng)論