0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GD32F303固件庫(kù)開(kāi)發(fā)(6)----GPIO輸入函數(shù)說(shuō)明

嵌入式單片機(jī)MCU開(kāi)發(fā) ? 來(lái)源:嵌入式單片機(jī)MCU開(kāi)發(fā) ? 作者:嵌入式單片機(jī)MCU開(kāi) ? 2022-11-28 10:39 ? 次閱讀

概述

本章主要講解GPIO輸入檢測(cè)。

硬件準(zhǔn)備

這里準(zhǔn)備了2塊開(kāi)發(fā)板進(jìn)行驗(yàn)證,分別是GD32303C_START開(kāi)發(fā)板。 在這里插入圖片描述

樣品申請(qǐng)

https://www.wjx.top/vm/wFGhGPF.aspx#

管腳配置

在GD32303C_START開(kāi)發(fā)板中,按鍵的管腳為PA0。 在這里插入圖片描述

LED管腳如下所示。 在這里插入圖片描述

對(duì)GPIO管腳進(jìn)行初始化配置。

/* 使能GPIOB時(shí)鐘*/
    rcu_periph_clock_enable(RCU_GPIOB);

    /*設(shè)置PB14、PB15為推挽輸出 */
    gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_14);
    gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_15);

    /* 設(shè)置PB14、PB15為輸出為0*/
    gpio_bit_reset(GPIOB, GPIO_PIN_14);    
        gpio_bit_reset(GPIOB, GPIO_PIN_15);    



        /* 使能GPIOB時(shí)鐘*/
    rcu_periph_clock_enable(RCU_GPIOA);    
        /*設(shè)置PA0為浮空輸入 */
        gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_0);

gpio_input_bit_get()函數(shù)

讀取指定的GPIO管腳電平狀態(tài)。 在這里插入圖片描述

例如按下按鍵LED1滅LE2亮,松開(kāi)按鍵LED1亮LE2滅。

while(1){

             if(SET == gpio_input_bit_get(GPIOA, GPIO_PIN_0))//按下LED1滅LE2亮
             {
                    gpio_bit_write(GPIOB, GPIO_PIN_15,SET);
                    gpio_bit_write(GPIOB, GPIO_PIN_14,RESET);

             }
                else//松開(kāi)LED1亮LE2滅
             {
                    gpio_bit_write(GPIOB, GPIO_PIN_15,RESET);
                    gpio_bit_write(GPIOB, GPIO_PIN_14,SET);

             }
        delay_1ms(10);
    }

gpio_input_port_get()函數(shù)

讀取整個(gè)GPIO的電平狀態(tài)。 在這里插入圖片描述 例如按下按鍵LED1滅LED2亮,松開(kāi)按鍵LED1亮LE2滅。

while(1){
                uint16_t get_gpioa_num = 0;
                get_gpioa_num=gpio_input_port_get(GPIOA);
                if(get_gpioa_num & 0x0001)//按下LED1滅LE2亮
             {
                    gpio_bit_write(GPIOB, GPIO_PIN_15,SET);
                    gpio_bit_write(GPIOB, GPIO_PIN_14,RESET);
             }
                else//松開(kāi)LED1亮LE2滅
             {
                    gpio_bit_write(GPIOB, GPIO_PIN_15,RESET);
                    gpio_bit_write(GPIOB, GPIO_PIN_14,SET); 
             }                                
        delay_1ms(10);
    }

gpio_output_bit_get()函數(shù)

讀取輸出管腳電平狀態(tài)。 在這里插入圖片描述

例如按下按鍵LED2亮,如果LED1是亮的,那么切換為滅的狀態(tài),如果為滅切換為亮狀態(tài)。 設(shè)置斷點(diǎn)查看會(huì)更加準(zhǔn)確。

while(1){
                uint16_t get_gpioa_num = 0;
                get_gpioa_num=gpio_input_port_get(GPIOA);
                if(get_gpioa_num & 0x0001)//按下LED1滅LE2亮
             {
                    gpio_bit_write(GPIOB, GPIO_PIN_15,SET);

                 if(gpio_output_bit_get(GPIOB, GPIO_PIN_14)==SET)//如果燈亮,則燈滅
                    gpio_bit_write(GPIOB, GPIO_PIN_14,RESET);
                 else//如果燈滅,則燈亮
                    gpio_bit_write(GPIOB, GPIO_PIN_14,SET); 
             }
                else//松開(kāi)LED1亮LE2滅
             {
                    gpio_bit_write(GPIOB, GPIO_PIN_15,RESET);

             }                                
        delay_1ms(10);
    }
}

gpio_output_port_get()函數(shù)

讀取全部GPIO管腳輸出電平狀態(tài)。 在這里插入圖片描述

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4284

    瀏覽量

    62325
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1189

    瀏覽量

    51839
  • 固件庫(kù)
    +關(guān)注

    關(guān)注

    2

    文章

    97

    瀏覽量

    14918
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32CUBEMX開(kāi)發(fā)GD32F3036)----GPIO輸入函數(shù)說(shuō)明

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進(jìn)行開(kāi)發(fā),同時(shí)通過(guò)GD32303C_START開(kāi)發(fā)板內(nèi)進(jìn)行驗(yàn)證。
    的頭像 發(fā)表于 11-25 16:06 ?1518次閱讀
    STM32CUBEMX<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(<b class='flag-5'>6</b>)----<b class='flag-5'>GPIO</b><b class='flag-5'>輸入</b><b class='flag-5'>函數(shù)說(shuō)明</b>

    GD32F303固件庫(kù)開(kāi)發(fā)(14)----IIC之配置OLED

    本章配置GD32F303使用IIC進(jìn)行驅(qū)動(dòng)SSD1306的12864OLED。
    的頭像 發(fā)表于 07-26 08:55 ?3520次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b>(14)----IIC之配置OLED

    GD32F303】星空派介紹

    GD32官方資料的基礎(chǔ)上,提供GD32F303的庫(kù)函數(shù)開(kāi)發(fā)資料、例程講解、視頻課程等。同時(shí)還提供RT-Thread相關(guān)的驅(qū)動(dòng)開(kāi)發(fā)、應(yīng)用
    發(fā)表于 09-11 17:55

    GD32F30x系列固件庫(kù)

    GD32F30x系列固件庫(kù)包含GD32F303GD32F305、GD32F307三個(gè)系列的最新
    發(fā)表于 08-21 09:00 ?165次下載

    GD32F303固件庫(kù)開(kāi)發(fā)(1)----前期準(zhǔn)備與燒錄

    在這使用STM32CUBEMX進(jìn)行配置STM32F103,移植到兆易創(chuàng)新GD32F303,然后進(jìn)行測(cè)試。需要樣片的可以加Qun申請(qǐng):615061293。
    的頭像 發(fā)表于 11-23 11:15 ?2548次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b>(1)----前期準(zhǔn)備與燒錄

    GD32F303固件庫(kù)開(kāi)發(fā)(3)----使用固件庫(kù)點(diǎn)亮LED

    概述 在GD的官網(wǎng)中有許多的DEMO文件,可以使用開(kāi)發(fā)板的案例或者對(duì)應(yīng)的MCU標(biāo)準(zhǔn)固件庫(kù)。需要樣片的可以加群申請(qǐng):6_15061293。 下
    的頭像 發(fā)表于 11-23 17:36 ?2808次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b>(3)----使用<b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b>點(diǎn)亮LED

    GD32F303固件庫(kù)開(kāi)發(fā)(4)----GPIO輸出函數(shù)說(shuō)明

    本章主要講解GPIO輸出函數(shù)說(shuō)明。 最近在弄ST和GD的課程,需要樣片的可以加群申請(qǐng):615061293。
    的頭像 發(fā)表于 11-24 14:17 ?2567次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b>(4)----<b class='flag-5'>GPIO</b>輸出<b class='flag-5'>函數(shù)說(shuō)明</b>

    STM32CUBEMX開(kāi)發(fā)GD32F303(4)----GPIO輸出模式,速率測(cè)試、開(kāi)漏和輸出說(shuō)明

    以STM32CUBEMX創(chuàng)建STM32F103工程,同時(shí)移植在GD32F303中,同時(shí)通過(guò)GD32303C_START開(kāi)發(fā)板內(nèi)進(jìn)行驗(yàn)證。 需要樣片的可以加Qun申請(qǐng):615061293
    的頭像 發(fā)表于 11-25 11:49 ?1785次閱讀
    STM32CUBEMX<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(4)----<b class='flag-5'>GPIO</b>輸出模式,速率測(cè)試、開(kāi)漏和輸出<b class='flag-5'>說(shuō)明</b>

    GD32F303固件庫(kù)開(kāi)發(fā)(5)----GPIO輸出模式,速率測(cè)試、開(kāi)漏和輸出說(shuō)明

    以STM32CUBEMX創(chuàng)建STM32F103工程,同時(shí)移植在GD32F303中,同時(shí)通過(guò)GD32303C_START開(kāi)發(fā)板內(nèi)進(jìn)行驗(yàn)證。
    的頭像 發(fā)表于 11-25 15:32 ?3091次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b>(5)----<b class='flag-5'>GPIO</b>輸出模式,速率測(cè)試、開(kāi)漏和輸出<b class='flag-5'>說(shuō)明</b>

    STM32CUBEMX開(kāi)發(fā)GD32F303(5)----GPIO輸出函數(shù)說(shuō)明

    概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中進(jìn)行開(kāi)發(fā),同時(shí)通過(guò)GD32303C_START開(kāi)發(fā)板內(nèi)進(jìn)行驗(yàn)
    的頭像 發(fā)表于 11-25 15:58 ?1134次閱讀
    STM32CUBEMX<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>(5)----<b class='flag-5'>GPIO</b>輸出<b class='flag-5'>函數(shù)說(shuō)明</b>

    AN029 GD32F103程序在GD32F303GD32F403芯片上運(yùn)行DSP

    AN029 GD32F103程序在GD32F303GD32F403芯片上運(yùn)行DSP
    發(fā)表于 02-27 18:33 ?0次下載
    AN029 <b class='flag-5'>GD32F</b>103程序在<b class='flag-5'>GD32F303</b>和<b class='flag-5'>GD32F</b>403芯片上運(yùn)行DSP

    GD32F303固件庫(kù)開(kāi)發(fā)(15)----外部中斷EXTI

    本章配置GD32F303使用EXTI進(jìn)行驅(qū)動(dòng)LED。
    的頭像 發(fā)表于 07-26 15:56 ?1388次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b>(15)----外部中斷EXTI

    GD32F303固件庫(kù)開(kāi)發(fā)

    的可以加群申請(qǐng):615061293 。 GD32F303固件庫(kù)開(kāi)發(fā)(1)----前期準(zhǔn)備與燒錄 使用GDLINK、jlink、串口下載程序到GD
    的頭像 發(fā)表于 07-27 09:27 ?1086次閱讀
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b>

    STM32CUBEMX開(kāi)發(fā)GD32F303

    在這使用STM32CUBEMX進(jìn)行配置STM32F103,移植到兆易創(chuàng)新GD32F303,然后進(jìn)行測(cè)試。
    的頭像 發(fā)表于 07-27 09:32 ?1496次閱讀
    STM32CUBEMX<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>GD32F303</b>

    GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列產(chǎn)品,該系列資源上與 GD32F303 兼容度非常高,本應(yīng)用筆記旨在幫助您快速將應(yīng)用程序從 GD32F303 系列微控
    的頭像 發(fā)表于 08-31 09:36 ?1307次閱讀
    【<b class='flag-5'>GD</b>32 MCU 移植教程】2、從 <b class='flag-5'>GD32F303</b> 移植到 <b class='flag-5'>GD32F</b>503