栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

四.国民技术MCU开发之 GPIO模块--按键KEY例子

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

四.国民技术MCU开发之 GPIO模块--按键KEY例子

四.国民技术MCU开发之 GPIO模块–按键KEY例子

文章目录
  • 四.国民技术MCU开发之 GPIO模块--按键KEY例子
    • 1.相关开发环境
    • 2.按键KEY 的GPIO的相关硬件配置
    • 3.GPIO CLK时钟使能配置以及KEY 初始化的相关代码
    • 4.轮询法获取按键状态的相关测试代码

1.相关开发环境

硬件版本:N32G457QEL_EVB V1.1

软件SDK版本 Nationstech.N32G45x_Library.1.1.1

开发软件:KEIL

2.按键KEY 的GPIO的相关硬件配置

	//key pa0

#define KEY_INPUT_PORT GPIOA
#define KEY_INPUT_PIN GPIO_PIN_0

3.GPIO CLK时钟使能配置以及KEY 初始化的相关代码
		    KeyInputInit(KEY_INPUT_PORT, KEY_INPUT_PIN);
void KeyInputInit(GPIO_Module* GPIOx, uint16_t Pin)
{
    GPIO_InitType GPIO_InitStructure;

    
    assert_param(IS_GPIO_ALL_PERIPH(GPIOx));

    
    if (GPIOx == GPIOA)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
    }
    else if (GPIOx == GPIOB)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);
    }
    else if (GPIOx == GPIOC)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOC, ENABLE);
    }
    else if (GPIOx == GPIOD)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOD, ENABLE);
    }
    else if (GPIOx == GPIOE)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOE, ENABLE);
    }
    else if (GPIOx == GPIOF)
    {
        RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOF, ENABLE);
    }
    else
    {
        if (GPIOx == GPIOG)
        {
            RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOG, ENABLE);
        }
    }

    
    if (Pin <= GPIO_PIN_ALL)
    {
        GPIO_InitStructure.Pin        = Pin;
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitPeripheral(GPIOx, &GPIO_InitStructure);
    }
}
4.轮询法获取按键状态的相关测试代码
	//	while(1)
		{
			if (GPIO_ReadInputDataBit(KEY_INPUT_PORT, KEY_INPUT_PIN) == Bit_RESET)
      {
					printf("key no pressed=%drn",get_curtime());
				
			}
			else
			{
				printf("key  pressed=%drn",get_curtime());
			}

			Delay_ms(1000);
		}
		else
		{
			printf("key  pressed=%drn",get_curtime());
		}

		Delay_ms(1000);
	}
# 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928212.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号