0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GD32F303固件库开发(6)----GPIO输入函数说明

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2022-11-28 10:39 次阅读

概述

本章主要讲解GPIO输入检测

硬件准备

这里准备了2块开发板进行验证,分别是GD32303C_START开发板。 在这里插入图片描述

样品申请

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

管脚配置

在GD32303C_START开发板中,按键的管脚为PA0。 在这里插入图片描述

LED管脚如下所示。 在这里插入图片描述

对GPIO管脚进行初始化配置。

/* 使能GPIOB时钟*/
    rcu_periph_clock_enable(RCU_GPIOB);

    /*设置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);

    /* 设置PB14、PB15为输出为0*/
    gpio_bit_reset(GPIOB, GPIO_PIN_14);    
        gpio_bit_reset(GPIOB, GPIO_PIN_15);    



        /* 使能GPIOB时钟*/
    rcu_periph_clock_enable(RCU_GPIOA);    
        /*设置PA0为浮空输入 */
        gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_0);

gpio_input_bit_get()函数

读取指定的GPIO管脚电平状态。 在这里插入图片描述

例如按下按键LED1灭LE2亮,松开按键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//松开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()函数

读取整个GPIO的电平状态。 在这里插入图片描述 例如按下按键LED1灭LED2亮,松开按键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//松开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()函数

读取输出管脚电平状态。 在这里插入图片描述

例如按下按键LED2亮,如果LED1是亮的,那么切换为灭的状态,如果为灭切换为亮状态。 设置断点查看会更加准确。

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//松开LED1亮LE2灭
             {
                    gpio_bit_write(GPIOB, GPIO_PIN_15,RESET);

             }                                
        delay_1ms(10);
    }
}

gpio_output_port_get()函数

读取全部GPIO管脚输出电平状态。 在这里插入图片描述

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4273

    浏览量

    62292
  • GPIO
    +关注

    关注

    16

    文章

    1186

    浏览量

    51795
  • 固件库
    +关注

    关注

    2

    文章

    97

    浏览量

    14915
收藏 人收藏

    评论

    相关推荐

    STM32CUBEMX开发GD32F3036)----GPIO输入函数说明

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验证。
    的头像 发表于 11-25 16:06 1510次阅读
    STM32CUBEMX<b class='flag-5'>开发</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'>函数说明</b>

    GD32F303固件开发(14)----IIC之配置OLED

    本章配置GD32F303使用IIC进行驱动SSD1306的12864OLED。
    的头像 发表于 07-26 08:55 3484次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>库</b><b class='flag-5'>开发</b>(14)----IIC之配置OLED

    GD32F303】星空派介绍

    GD32官方资料的基础上,提供GD32F303的库函数开发资料、例程讲解、视频课程等。同时还提供RT-Thread相关的驱动开发、应用
    发表于 09-11 17:55

    GD32F30x系列固件

    GD32F30x系列固件包含GD32F303GD32F305、GD32F307三个系列的最新
    发表于 08-21 09:00 165次下载

    GD32F303固件开发(1)----前期准备与烧录

    在这使用STM32CUBEMX进行配置STM32F103,移植到兆易创新GD32F303,然后进行测试。需要样片的可以加Qun申请:615061293。
    的头像 发表于 11-23 11:15 2508次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>库</b><b class='flag-5'>开发</b>(1)----前期准备与烧录

    GD32F303固件开发(3)----使用固件点亮LED

    概述 在GD的官网中有许多的DEMO文件,可以使用开发板的案例或者对应的MCU标准固件。需要样片的可以加群申请:6_15061293。 下
    的头像 发表于 11-23 17:36 2785次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>库</b><b class='flag-5'>开发</b>(3)----使用<b class='flag-5'>固件</b><b class='flag-5'>库</b>点亮LED

    GD32F303固件开发(4)----GPIO输出函数说明

    本章主要讲解GPIO输出函数说明。 最近在弄ST和GD的课程,需要样片的可以加群申请:615061293。
    的头像 发表于 11-24 14:17 2543次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>库</b><b class='flag-5'>开发</b>(4)----<b class='flag-5'>GPIO</b>输出<b class='flag-5'>函数说明</b>

    STM32CUBEMX开发GD32F303(4)----GPIO输出模式,速率测试、开漏和输出说明

    以STM32CUBEMX创建STM32F103工程,同时移植在GD32F303中,同时通过GD32303C_START开发板内进行验证。 需要样片的可以加Qun申请:615061293
    的头像 发表于 11-25 11:49 1779次阅读
    STM32CUBEMX<b class='flag-5'>开发</b><b class='flag-5'>GD32F303</b>(4)----<b class='flag-5'>GPIO</b>输出模式,速率测试、开漏和输出<b class='flag-5'>说明</b>

    GD32F303固件开发(5)----GPIO输出模式,速率测试、开漏和输出说明

    以STM32CUBEMX创建STM32F103工程,同时移植在GD32F303中,同时通过GD32303C_START开发板内进行验证。
    的头像 发表于 11-25 15:32 3076次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>库</b><b class='flag-5'>开发</b>(5)----<b class='flag-5'>GPIO</b>输出模式,速率测试、开漏和输出<b class='flag-5'>说明</b>

    STM32CUBEMX开发GD32F303(5)----GPIO输出函数说明

    概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验
    的头像 发表于 11-25 15:58 1124次阅读
    STM32CUBEMX<b class='flag-5'>开发</b><b class='flag-5'>GD32F303</b>(5)----<b class='flag-5'>GPIO</b>输出<b class='flag-5'>函数说明</b>

    AN029 GD32F103程序在GD32F303GD32F403芯片上运行DSP

    AN029 GD32F103程序在GD32F303GD32F403芯片上运行DSP
    发表于 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芯片上运行DSP

    GD32F303固件开发(15)----外部中断EXTI

    本章配置GD32F303使用EXTI进行驱动LED。
    的头像 发表于 07-26 15:56 1365次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>库</b><b class='flag-5'>开发</b>(15)----外部中断EXTI

    GD32F303固件开发

    的可以加群申请:615061293 。 GD32F303固件开发(1)----前期准备与烧录 使用GDLINK、jlink、串口下载程序到GD
    的头像 发表于 07-27 09:27 1074次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b><b class='flag-5'>库</b><b class='flag-5'>开发</b>

    STM32CUBEMX开发GD32F303

    在这使用STM32CUBEMX进行配置STM32F103,移植到兆易创新GD32F303,然后进行测试。
    的头像 发表于 07-27 09:32 1480次阅读
    STM32CUBEMX<b class='flag-5'>开发</b><b class='flag-5'>GD32F303</b>

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

    GD32E503 系列是 GD 推出的 Cortex_M33 系列产品,该系列资源上与 GD32F303 兼容度非常高,本应用笔记旨在帮助您快速将应用程序从 GD32F303 系列微控
    的头像 发表于 08-31 09:36 1272次阅读
    【<b class='flag-5'>GD</b>32 MCU 移植教程】2、从 <b class='flag-5'>GD32F303</b> 移植到 <b class='flag-5'>GD32F</b>503