色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    瀏覽量

    10169
收藏 人收藏

    評論

    相關推薦

    藍橋該如何備賽?

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

    HAL庫的函數調用示例

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

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

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

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

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

    《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 ?836次閱讀
    【北京迅為】《<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 ?766次閱讀
    【北京迅為】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 ?2061次閱讀
    手把手帶你移植<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
    主站蜘蛛池模板: 污文乖不疼的| 久久re视频这里精品一本到99| 床上色APP下载免费版| 国产精品人妻无码77777| 久久精品国产亚洲AV热无遮挡 | 兔费看少妇性L交大片免费| 一本到高清视频在线观看三区| 成人免费观看www视频| 久久亚洲欧美国产综合| 先锋影音 av| 拔擦拔擦8X永久华人免费播放器 | 97久久国产露脸精品国产| 国产亚洲精品A久久777777| 免费麻豆国产黄网站在线观看| 污污又黄又爽免费的网站| 把内衣脱了把奶露出来| 毛片免费观看的视频| 亚洲欧美日本国产在线观18| 国产高潮国产高潮久久久久久| 鸥美一级黄色片| 99九九99九九九视频精品| 久久成人a毛片免费观看网站| 天美传媒麻豆精品| 成人欧美尽粗二区三区AV| 欧美成人亚洲高清在线观看| 中文字幕天堂久久精品| 久久国产精品福利影集| 亚洲天码中字| 黄色直接观看| 亚洲成人精品| 国产在线观看成人| 亚洲 日本 欧美 中文字幕| 麻豆区蜜芽区| 热久久伊大人香蕉网老师| 国产WW久久久久久久久久| 男人舔女人的阴部黄色骚虎视频| 亚洲伊人国产| 久久精品电影院| 久久99热这里只频精品6| 99er热精品视频国产免费| 肉动漫无码无删减在线观看 |