打印
[方案相关]

玄宇芯-HC32L072开发板测评 + KEY控制LED

[复制链接]
1013|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jinglixixi 于 2020-9-13 23:56 编辑

在HC32L072开发板上,LEDKEY的原理图如图1所示,可以用SW1SW2分别控制DS1DS2
1  LEDKEY原理图


实现控制功能的主程序如下:
/******************************************************************************
* Include files
******************************************************************************/
#include "gpio.h"
/**
******************************************************************************
** \brief  Main function of project
**
** \return uint32_t return value, if needed
**
** This sample
**
******************************************************************************/
int32_t main(void)
{
    ///< 按键端口初始化
    App_UserKeyInit();
    ///< LED端口初始化
    App_LedInit();
    while(1)
    {
        ///< 检测USER按键是否按下(低电平)  KEY1
        if(FALSE == Gpio_GetInputIO(GpioPortE, GpioPin3))
        {
            ///< LED点亮
            Gpio_SetIO(GpioPortE, GpioPin4);
        }
        else
        {
            ///< LED关闭
            Gpio_ClrIO(GpioPortE, GpioPin4);
        }
               
                ///< 检测USER按键是否按下(低电平)  KEY2
        if(FALSE == Gpio_GetInputIO(GpioPortE, GpioPin5))
        {
            ///< LED点亮
            Gpio_SetIO(GpioPortE, GpioPin2);
        }
        else
        {
            ///< LED关闭
            Gpio_ClrIO(GpioPortE, GpioPin2);
        }
    }
}

按键引脚功能配置函数:
static void App_UserKeyInit(void)
{
    stc_gpio_cfg_t stcGpioCfg;
    ///< 打开GPIO外设时钟门控
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
    ///< 端口方向配置->输入
    stcGpioCfg.enDir = GpioDirIn;
    ///< 端口驱动能力配置->高驱动能力
    stcGpioCfg.enDrv = GpioDrvL;
    ///< 端口上下拉配置->无
    stcGpioCfg.enPu = GpioPuDisable;
    stcGpioCfg.enPd = GpioPdDisable;
    ///< 端口开漏输出配置->开漏输出关闭
    stcGpioCfg.enOD = GpioOdDisable;
    ///< 端口输入/输出值寄存器总线控制模式配置->AHB
    stcGpioCfg.enCtrlMode = GpioAHB;
    ///< GPIO IO USER KEY初始化
    Gpio_Init(GpioPortE, GpioPin3, &stcGpioCfg);
    Gpio_Init(GpioPortE, GpioPin5, &stcGpioCfg);
}

LED灯引脚功能配置函数:
static void App_LedInit(void)
{
    stc_gpio_cfg_t stcGpioCfg;
    ///< 打开GPIO外设时钟门控
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
    ///< 端口方向配置->输出(其它参数与以上(输入)配置参数一致)
    stcGpioCfg.enDir = GpioDirOut;
    ///< 端口上下拉配置->下拉
    stcGpioCfg.enPu = GpioPuDisable;
    stcGpioCfg.enPd = GpioPdEnable;
    ///< LED关闭
    Gpio_ClrIO(GpioPortE, GpioPin2);
         Gpio_ClrIO(GpioPortE, GpioPin4);
    ///< GPIO IO LED端口初始化
    Gpio_Init(GpioPortE, GpioPin2, &stcGpioCfg);
    Gpio_Init(GpioPortE, GpioPin4, &stcGpioCfg);
}

程序编译、下载后,其运行效果如2所示。
2 测试效果


目标代码文件:

gpio_input.rar

1.6 KB

使用特权

评论回复
沙发
guijial511| | 2020-9-17 07:48 | 只看该作者
黑色板子骚啊

使用特权

评论回复
板凳
zljiu| | 2020-10-10 16:42 | 只看该作者
路过 学习一下

使用特权

评论回复
地板
coshi| | 2020-10-10 16:42 | 只看该作者
感谢楼主的分享

使用特权

评论回复
5
aoyi| | 2020-10-10 16:42 | 只看该作者
楼主辛苦了啊

使用特权

评论回复
6
drer| | 2020-10-10 16:43 | 只看该作者
开拓眼界了 谢谢

使用特权

评论回复
7
gwsan| | 2020-10-10 16:43 | 只看该作者
介绍的很详细 谢谢

使用特权

评论回复
8
jinglixixi|  楼主 | 2020-10-10 20:00 | 只看该作者
多谢各位的支持!!!

使用特权

评论回复
9
rickluo| | 2020-10-10 23:09 | 只看该作者
路过支持!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

451

主题

2747

帖子

38

粉丝