在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【藍橋杯嵌入式G4】第二章 stm32l0xx_hal_gpio.c的常見函數

撞上電子 ? 2021-08-17 09:53 ? 次閱讀

本章將介紹幾個在比賽中常見的函數,這幾個函數都是非常簡單,關系到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)

cc93326e-fc50-11eb-8f0a-000c2944909e.png

返回值:

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)。

ccafe226-fc50-11eb-8480-000c2944909e.png

需要注意的是,只能返回這兩種值,即使該寄存器有四個變量。為什么呢?仔細看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

往期精彩

【1】開發板開獎通知

【2】【藍橋杯物聯網】第四章 點亮一個LED

【3】【藍橋杯物聯網】第三章 stm32l0xx_hal_gpio.c的常見函數

【4】【藍橋杯物聯網】第一章 了解開發板

【5】藍橋杯單片機文檔教程免費下載

ccd0a6a8-fc50-11eb-8976-000c2944909e.png

ccd94e42-fc50-11eb-9714-000c2944909e.png

點個在看你最好看

ccdfb6e8-fc50-11eb-ae40-000c2944909e.png

原文標題:【藍橋杯嵌入式G4】第二章 stm32l0xx_hal_gpio.c的常見函數

文章出處:【微信公眾號:撞上電子】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 藍橋杯
    +關注

    關注

    1

    文章

    129

    瀏覽量

    10201
收藏 人收藏

    評論

    相關推薦

    藍橋該如何備賽?

    藍橋物聯網已經換了三次開發板了,每次換板子,題目難度都會降低不少,所以說,藍橋物聯網在藍橋
    的頭像 發表于 12-19 21:02 ?370次閱讀
    <b class='flag-5'>藍橋</b><b class='flag-5'>杯</b>該如何備賽?

    HAL庫的函數調用示例

    GPIO(通用輸入輸出)相關函數 GPIO初始化 c復制代碼GPIO_InitTypeDef GPIO
    的頭像 發表于 12-02 14:01 ?676次閱讀

    如何快速入門HAL庫編程 HAL庫與裸機編程的比較

    如何快速入門HAL庫編程 要快速入門HAL庫編程,可以遵循以下步驟: 了解基礎知識 : 掌握C語言編程基礎,包括變量、數據類型、函數、指針等。 了解
    的頭像 發表于 12-02 11:39 ?459次閱讀

    HAL庫在嵌入式系統中的應用

    HAL庫(Hardware Abstraction Layer Library,硬件抽象層庫)在嵌入式系統中扮演著至關重要的角色。以下是HAL庫在嵌入式系統中的應用的分析: 一、
    的頭像 發表于 12-02 11:32 ?909次閱讀

    《AI for Science:人工智能驅動科學創新》第二章AI for Science的技術支撐學習心得

    非常高興本周末收到一本新書,也非常感謝平臺提供閱讀機會。 這是一本挺好的書,包裝精美,內容詳實,干活滿滿。 關于《AI for Science:人工智能驅動科學創新》第二章“AI
    發表于 10-14 09:16

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+第一二讀后感

    類型和產品,以及嵌入式Hypervisor的基礎知識,這些內容讓我對Hypervisor的應用領域有了更廣泛的認識。 接著,第二章詳細對比了兩種嵌入式Hypervisor的實現方式:基于分離內核
    發表于 10-09 18:22

    【北京迅為】《stm32mp157開發板嵌入式linux開發指南》第五 Ubuntu使用apt-get下載

    【北京迅為】《stm32mp157開發板嵌入式linux開發指南》第五 Ubuntu使用apt-get下載
    的頭像 發表于 09-03 16:26 ?879次閱讀
    【北京迅為】《<b class='flag-5'>stm32</b>mp157開發板<b class='flag-5'>嵌入式</b>linux開發指南》第五<b class='flag-5'>章</b> Ubuntu使用apt-get下載

    【北京迅為】itop-龍芯2k1000 sylixos 嵌入式實時系統燒寫手冊-第一第二章 詳細步驟

    【北京迅為】itop-龍芯2k1000 sylixos 嵌入式實時系統燒寫手冊-第一第二章 詳細步驟
    的頭像 發表于 08-26 14:18 ?791次閱讀
    【北京迅為】itop-龍芯2k1000 sylixos <b class='flag-5'>嵌入式</b>實時系統燒寫手冊-第一<b class='flag-5'>章</b>與<b class='flag-5'>第二章</b> 詳細步驟

    【「ARM MCU嵌入式開發 | 基于國產GD32F10x芯片」閱讀體驗】+書籍整體概況

    是國產芯片的佼佼者,此書籍深入淺出地講解了嵌入式系統開發的基礎知識,當然閱讀者還是需要掌握一定的C語言知識的,案例是基于GD官方的標準庫函數實現的。 四、目錄展示 第一為概述內容,主
    發表于 08-25 22:48

    學習hypervisor嵌入式產品安全設計

    第一部分(第1~2)介紹Hypervisor基礎,涵蓋虛擬化技術與實現、主流的嵌入式Hypervisor產品,以及基于分離內核的嵌入式Hypervisor等內容。第二部分(第3~12
    發表于 08-25 09:11

    手把手帶你移植HAL函數

    開發者更高效地進行嵌入式開發。手把手帶你移植HAL函數HAL庫提供了一套抽象接口,使開發者無需直接操作底層硬件寄存器,就能實現對硬件的控制。這種抽象使得代碼能夠更
    的頭像 發表于 05-18 08:04 ?2140次閱讀
    手把手帶你移植<b class='flag-5'>HAL</b>庫<b class='flag-5'>函數</b>

    stm32f4xx_hal_eth.c文件不支持PTP協議怎么解決?

    最近在用stm32f407調試ptp,但是stm32f4xx_hal_eth.c文件中沒有操作以太網時間戳寄存器的函數,看到文件頭部說明本文件不支持PTP協議,請各位大神幫助,怎么解決這個問題!謝謝了!
    發表于 04-19 08:21

    SD外設初始化,程序卡在stm32l4xx_hal_sd.c的第3662行的原因?

    SD外設初始化,程序卡在stm32l4xx_hal_sd.c的第3662行 MDK版本:5.33 MCU:stm32l4r9zi
    發表于 04-08 08:11

    stm32f4xx_hal_spi.cHAL_SPI_TransmitReceive函數中,當需要發送數據時為什么要先進行一次發送?

    stm32f4xx_hal_spi.cHAL_SPI_TransmitReceive函數中,當需要發送數據時為什么要先進行一次發送(模式為從機或發送幀數為1時)
    發表于 03-25 07:00

    STM32G4XX不能夠像STM32F1XX STM32F4XX那樣對GPIO進行位帶操作呢?

    請教下,在STM32G4XX系列里面,GPIO掛載在AHB2總線上面,地址在0x4800 0000. 是不是也就意味著,STM32G4XX不能夠在像
    發表于 03-21 07:16
    主站蜘蛛池模板: 欧美ol丝袜高跟秘书在线播放 | 美女黄网站人色视频免费国产 | 特黄特级毛片免费视 | 午夜在线观看福利 | 中文字幕在线天堂 | 亚洲夜夜骑 | 狠狠去 | 一级aaaaaa片毛片在线播放 | 永久免费视频网站在线观看 | 一区二区三区四区视频 | 大尺度在线 | 亚洲日本在线观看 | 韩国xxxxxxxx69| 欧美色视频日本 | 天天射天天干天天 | 亚洲成a人片在线观看www | 91寡妇天天综合久久影院 | 国产激情电影综合在线看 | 免费人成黄页在线观看1024 | 日本网站黄色 | 色吧色吧色吧网 | 男女做视频网站免费观看 | 痴女中文字幕在线视频 | 黄色的视频在线免费观看 | 国产美女一级高清免费观看 | 狠狠五月天 | 天堂在线视频网站 | 久久不射影院 | 1717国产精品久久 | 精品亚洲欧美无人区乱码 | 国产免费小视频 | 亚洲国产欧美精品一区二区三区 | 午夜国产精品福利在线观看 | 成人一级视频 | 国产午夜毛片一区二区三区 | 欧美在线观看视频一区 | 四虎成人欧美精品在永久在线 | 成人网在线看 | 久久好色| 在线观看视频在线观看 | 久久久久久久久久久9精品视频 |