135|2

1473

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【MCXA156开发板测评】+按键控制LED [复制链接]

MCXA156开发板为了便于用户体验和测试其功能,配备了相应的接口和外设,见图1所示。

 

图1 接口及外设配置

 

为此,就从GPIO口的使用来开始它的探索与使用之旅。

GPIO口有两大基本功能,即输入与输出功能。板载的RGB_LED和按键恰为GPIO口的测试提供了便利,其电路见图2所示。

 

 

 

图2  RGB及按键电路

 

用按键来控制LED不外乎2种方式,即查询方式和中断方式。

 

  1. 查询方式

以查询方式进行控制的思路为:

将LED和按键所使用的引脚分别配置为输出和输入工作模式,然后通过按键的状态来控制LED进行状态的翻转变化。

以查询方式进行控制的主程序为:

int main(void)
{
    gpio_pin_config_t sw_config = {
        kGPIO_DigitalInput,
        0,
    };
    gpio_pin_config_t led_config = {
        kGPIO_DigitalOutput,
        0,
    };
    BOARD_InitPins();
    BOARD_InitBootClocks();
    BOARD_InitDebugConsole();
    GPIO_PinInit(BOARD_SW_GPIO, BOARD_SW_GPIO_PIN, &sw_config);
    GPIO_PinInit(BOARD_LED_GPIO, BOARD_LED_GPIO_PIN, &led_config);
    while (1)
    {
	    if ((GPIO_PinRead(BOARD_SW_GPIO, BOARD_SW_GPIO_PIN))==0)
        {
            GPIO_PortToggle(BOARD_LED_GPIO, 1U << BOARD_LED_GPIO_PIN);
		    while (((GPIO_PinRead(BOARD_SW_GPIO, BOARD_SW_GPIO_PIN))==0));
        }
    }
}

2.中断方式

 

以中断方式进行控制的思路为:

将LED和按键所使用的引脚分别配置为输出和输入工作模式,并启动中断处理。当按下按键时,触发中断处理以使标志变量等于真,从在主程序中使LED进行状态翻转。

 

以中断方式进行控制的主程序为:

int main(void)
{
    gpio_pin_config_t sw_config = {
        kGPIO_DigitalInput,
        0,
    };
    gpio_pin_config_t led_config = {
        kGPIO_DigitalOutput,
        0,
    };
    BOARD_InitPins();
    BOARD_InitBootClocks();
    BOARD_InitDebugConsole();
    GPIO_SetPinInterruptConfig(BOARD_SW_GPIO,BOARD_SW_GPIO_PIN, kGPIO_InterruptFallingEdge);
    EnableIRQ(BOARD_SW_IRQ);
    GPIO_PinInit(BOARD_SW_GPIO, BOARD_SW_GPIO_PIN, &sw_config);
    GPIO_PinInit(BOARD_LED_GPIO, BOARD_LED_GPIO_PIN, &led_config);
    while (1)
    {
        if (g_ButtonPress)
        {
            GPIO_PortToggle(BOARD_LED_GPIO, 1U << BOARD_LED_GPIO_PIN);
            g_ButtonPress = false;
        }
    }
}

中断处理的函数为:

void BOARD_SW_IRQ_HANDLER(void)
{
    GPIO_GpioClearInterruptFlags(BOARD_SW_GPIO, 1U << BOARD_SW_GPIO_PIN);
    g_ButtonPress = true;
    SDK_ISR_EXIT_BARRIER;
}

这样我们就以2种方式实现了按键控制LED的功能,也为后续的GPIO口使用提供了可靠的支持。

 

 

此帖出自NXP MCU论坛

最新回复

查询和中断都是比较常用的按键控制方法   详情 回复 发表于 7 小时前
点赞 关注
 

回复
举报

6718

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

查询和中断都是比较常用的按键控制方法

此帖出自NXP MCU论坛

点评

没错,因此要打好基础。  详情 回复 发表于 5 小时前
 
 
 

回复

1473

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
Jacktang 发表于 2024-12-25 07:27 查询和中断都是比较常用的按键控制方法

没错,因此要打好基础。

此帖出自NXP MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/4 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表