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

    文章

    3911

    浏览量

    61368
  • GPIO
    +关注

    关注

    16

    文章

    1139

    浏览量

    50629
  • 固件库
    +关注

    关注

    2

    文章

    93

    浏览量

    14838
收藏 人收藏

    评论

    相关推荐

    STM32CUBEMX开发GD32F303(6)----GPIO输入函数说明

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验证。
    的头像 发表于 11-25 16:06 1183次阅读
    STM32CUBEMX<b class='flag-5'>开发</b><b class='flag-5'>GD32F303</b>(6)----<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 2649次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b>库<b class='flag-5'>开发</b>(14)----IIC之配置OLED

    GD32E103和GD32F303区别

    GD早期的产品,GD32E103和GD32F303是对GD32F103的升级和优化,所以4者是兼容的,虽然内核不同,但是通用外设几乎很少涉及到内核部分,在时间急迫的情况下可以使用ST
    发表于 08-10 07:32

    GD32F303】星空派介绍

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

    【星空派GD32F303开发板试用体验】开箱+环境搭建

    本帖最后由 lustao 于 2021-10-19 09:29 编辑 感谢 发烧友学院以及广州旗点智能科技有限公司为我和孩子提供此产品星空派GD32F303开发板。收到了星空派GD32F303
    发表于 10-18 14:15

    【星空派GD32F303开发板试用体验】开箱+环境搭建

    https://bbs.elecfans.com/jishu_2179209_1_1.html感谢 发烧友学院以及广州旗点智能科技有限公司为我和孩子提供此产品星空派gd32F303开发板。收到了星空
    发表于 11-02 15:36

    星空派GD32F303开发板的相关资料下载

    一、开发板介绍星空派(GD开发板是由旗点科技推出的一款GD32开发板,板载GD32F303ZET6
    发表于 12-10 08:27

    GD32F30x系列固件

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

    STM32CUBEIDE(4)----GPIO输出函数说明

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

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

    本章主要讲解GPIO输出函数说明。 最近在弄ST和GD的课程,需要样片的可以加群申请:615061293。
    的头像 发表于 11-24 14:17 1864次阅读
    <b class='flag-5'>GD32F303</b><b class='flag-5'>固件</b>库<b class='flag-5'>开发</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 2562次阅读
    <b class='flag-5'>GD32F303</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开发板内进行验证。 样品申请 https://www.wj
    的头像 发表于 11-25 15:58 797次阅读
    STM32CUBEMX<b class='flag-5'>开发</b><b class='flag-5'>GD32F303</b>(5)----<b class='flag-5'>GPIO</b>输出<b class='flag-5'>函数说明</b>

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

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

    GD32F303固件开发

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

    STM32CUBEMX开发GD32F303

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