精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

撞上電子 ? 2021-08-09 10:06 ? 次閱讀
ca738a36-f862-11eb-a0cf-000c2944909e.gif

本章將介紹幾個在比賽中常見的函數,這幾個函數都是非常簡單,關系到LED,按鍵,繼電器等簡單的外設。

第一節HAL_GPIO_Init

函數原型:

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

cad1b110-f862-11eb-abe6-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_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_tGPIO_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

函數原型:

voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_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)。

caf793b0-f862-11eb-9162-000c2944909e.png

需要注意的是,只能返回這兩種值,即使該寄存器有四個變量。為什么呢?仔細看HAL_GPIO_LockPin函數的最后看明白了。

第七節HAL_GPIO_EXTI_IRQHandler

函數原型:

voidHAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);

函數解析:

外部中斷服務函數,用來響應外部中斷的觸發。

形參解析:

一共一名形參,該形參的具體功能如下:

uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。

返回值:

void函數無返回值。

第八節HAL_GPIO_EXTI_Callback

函數原型:

__weakvoid HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

函數解析:

該函數是回調函數,說白了就是中斷之后,需要什么功能,就寫在這個函數里面。至于__weak,它是一個弱化標識,帶有這個的函數就是一個弱化函數,就是你可以在其他地方寫一個名稱和參數都一模一樣的函數,編譯器就會忽略這一個函數,而去執行你寫的那個函數。

形參解析:

一共一名形參,該形參的具體功能如下:

uint16_t GPIO_Pin:該形參是對GPIO引腳的定義,比如:GPIO_PIN_14,GPIO_PIN_15等等。

返回值:

該函數無返回值。

cb02f7a8-f862-11eb-9171-000c2944909e.png

往期精彩

【1】【藍橋杯物聯網】第二章 軟件環境搭建

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

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

【4】

【5】【藍橋杯單片機】第十六章 獨立按鍵(松開有效)

cb0888be-f862-11eb-923c-000c2944909e.png

原文標題:【藍橋杯物聯網】第三章 stm32l0xx_hal_gpio.c的常見函數

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

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

    關注

    1

    文章

    123

    瀏覽量

    10130
收藏 人收藏

    評論

    相關推薦

    《DNK210使用指南 -CanMV版 V1.0》第三章 CanMV簡介

    第三章 CanMV簡介 本章將對CanMV進行簡單介紹本章分為如下幾個小節:3.1 初識CanMV 3.2 CanMV的應用開發方式 3.1 初識CanMVCanMV是嘉楠科技針對AIOT編程
    發表于 09-03 10:13

    迅為電子RK3588S開發板第三章Buildroot系統功能測試

    迅為電子RK3588S開發板第三章Buildroot系統功能測試
    的頭像 發表于 09-02 14:45 ?691次閱讀
    迅為電子RK3588S開發板<b class='flag-5'>第三章</b>Buildroot系統功能測試

    第12-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細講解+HAL庫)

    第12-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細講解+HAL庫)
    的頭像 發表于 08-21 16:31 ?2215次閱讀
    第12<b class='flag-5'>章</b>-ADC采集電壓和顯示 基于<b class='flag-5'>STM32</b>的ADC—電壓采集(詳細講解+<b class='flag-5'>HAL</b>庫)

    STM32F0xx_HAL_Driver庫的串口接收數據個數,是不是只能寫成1,一個一個數據接收?

    在使用STM32F0xx_HAL_Driver庫進行串口接收數據 HAL_StatusTypeDef HAL_UART_Receive( UART_HandleTypeDef *huart
    發表于 05-14 06:39

    請問如何在STM32Cube_FW_L0_V1.7.0 FreeRTOS的例程上添加串口輸出?

    嗎? 為什么都要自己重新寫驅動?那HAL 庫用來干嘛? stm32l0xx_hal_uart.c 中不都有串口的讀寫及初始化操作嗎? 所以請教各位,如果使用官方提供的例子, 那么當涉及到要添加新外設時,具體的步驟 應該是怎樣?
    發表于 05-09 07:04

    利用ST Motor Control workbench生成工程編譯時無法完成編譯,好多函數沒有函數體是什么原因啊?

    stm32f3xx_hal_rcc_ex.c... compiling stm32f3xx_hal_gpio.c... compiling stm32f3xx_hal_rcc.c... compiling
    發表于 04-24 06:13

    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

    STM32的中斷函數HAL_GPIO_EXTI_Callback里面不能嵌套PWM嗎?

    請問,STM32的中斷函數HAL_GPIO_EXTI_Callback里面不能嵌套PWM嗎? void HAL_GPIO_EXTI_Callback(uint16_t
    發表于 04-07 08:24

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

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

    用cubeMX + STM32L0HAL庫1.12.1生成的自定義HID設備,接收后發送數據第三次開始會失敗卡死的原因?

    用cubeMX + STM32L0HAL庫1.12.1生成的自定義HID設備,在接收后發送數據,第三次開始會失敗卡死,單獨接收和發送沒問題,用HAL庫1.12.0生成的沒問題
    發表于 03-21 08:05

    STM32L0使用延時函數使PWM波形移相,延時函數不起作用的原因?

    使用的是STM32L0系列,準備使用延時函數使PWM波形移相,現在延時函數不起作用 delay.c函數如下: //us void delay
    發表于 03-21 06:23

    HAL src如何把stm32h7xx_hal_flash.c文件添加到src目錄?

    HAL src里怎么添加stm32h7xx_hal_flash.c文件到src目錄
    發表于 02-23 06:57

    stm32f1如何將外部中斷關掉hal

    引入相關的頭文件。在HAL庫中,與外部中斷相關的頭文件是stm32f1xx_hal_exti.h和stm32f1xx_hal_gpio.h。這兩個頭文件提供了對外部中斷和GPIO
    的頭像 發表于 12-22 13:52 ?3221次閱讀

    使用STM32 HAL庫進行GPIO控制的實例

    在基于STM32微控制器的嵌入式系統開發中,GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常見的操作之一。通過使用STM32
    的頭像 發表于 12-21 15:22 ?3195次閱讀