本章將介紹幾個在比賽中常見的函數,這幾個函數都是非常簡單,關系到LED,按鍵,繼電器等簡單的外設。
第一節HAL_GPIO_Init
函數原型:
void HAL_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_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_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
函數原型:
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_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
函數原型:
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
函數解析:
外部中斷服務函數,用來響應外部中斷的觸發。
形參解析:
一共一名形參,該形參的具體功能如下:
uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
void函數無返回值。
第八節HAL_GPIO_EXTI_Callback
函數原型:
__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
函數解析:
該函數是回調函數,說白了就是中斷之后,需要什么功能,就寫在這個函數里面。至于__weak,它是一個弱化標識,帶有這個的函數就是一個弱化函數,就是你可以在其他地方寫一個名稱和參數都一模一樣的函數,編譯器就會忽略這一個函數,而去執行你寫的那個函數。
形參解析:
一共一名形參,該形參的具體功能如下:
uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。
返回值:
該函數無返回值。![ccbe1aae-fc50-11eb-8210-000c2944909e.png](https://file1.elecfans.com//web2/M00/9C/75/wKgaomTny2WAUtZKAAACKorcoGU146.png)
往期精彩
【1】開發板開獎通知
【2】【藍橋杯物聯網】第四章 點亮一個LED
【3】【藍橋杯物聯網】第三章 stm32l0xx_hal_gpio.c的常見函數
【4】【藍橋杯物聯網】第一章 了解開發板
![ccd0a6a8-fc50-11eb-8976-000c2944909e.png](https://file1.elecfans.com//web2/M00/9C/75/wKgaomTny2WAPKCgAAAAxwNPO6M670.png)
![ccd94e42-fc50-11eb-9714-000c2944909e.png](https://file1.elecfans.com//web2/M00/9C/75/wKgaomTny2WAMoAuAAAHlRW-gqg879.png)
點個在看你最好看
![ccdfb6e8-fc50-11eb-ae40-000c2944909e.png](https://file1.elecfans.com//web2/M00/9C/75/wKgaomTny2WAKnQCAAAGV7WIdqQ304.png)
-
藍橋杯
+關注
關注
1文章
129瀏覽量
10201
發布評論請先 登錄
相關推薦
如何快速入門HAL庫編程 HAL庫與裸機編程的比較
HAL庫在嵌入式系統中的應用
《AI for Science:人工智能驅動科學創新》第二章AI for Science的技術支撐學習心得
【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+第一二章讀后感
【北京迅為】《stm32mp157開發板嵌入式linux開發指南》第五章 Ubuntu使用apt-get下載
![【北京迅為】《<b class='flag-5'>stm32</b>mp157開發板<b class='flag-5'>嵌入式</b>linux開發指南》第五<b class='flag-5'>章</b> Ubuntu使用apt-get下載](https://file1.elecfans.com/web2/M00/06/05/wKgaombWyEWAX1AjAADRSNKv2wo643.png)
【北京迅為】itop-龍芯2k1000 sylixos 嵌入式實時系統燒寫手冊-第一章與第二章 詳細步驟
![【北京迅為】itop-龍芯2k1000 sylixos <b class='flag-5'>嵌入式</b>實時系統燒寫手冊-第一<b class='flag-5'>章</b>與<b class='flag-5'>第二章</b> 詳細步驟](https://file1.elecfans.com/web2/M00/04/31/wKgZombMHheAFsH0AABUZm1jsc8346.png)
評論