请选择 进入手机版 | 继续访问电脑版
查看: 1299|回复: 2

[原创] 在LPC54114开发板上实现KEY控制LED灯

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7095
    最后登录
    2023-4-20
    发表于 2021-2-4 18:16:22 | 显示全部楼层 |阅读模式
    本帖最后由 jinglixixi 于 2021-2-4 18:22 编辑

    在官网的例程中,提供了3个与KEYLED灯的示例,分别是:periph_blinkyperiph_blinky_colorperiph_gint
    其功能分别是:
    1. 使用SysTick计时器,以1秒的频次来切换LED灯的开关状态;
    2. 使用SysTick计时器,在7种色彩状态以1秒的频次进行切换;
    3. 使用SW1-WAKE SW2-ISP键来共同控制LED灯的开关,所使用的方式为中断方式;

    为了便于实际的使用,这里提供一个以KEY控制LED灯的用法,即一键控制一个LED灯的开关,所使用的方式为查询方式。
    相应的主程序为:
    int main(void)
    {
             intloop = 1;     /* Used to fix theunreachable statement warning */
             SystemCoreClockUpdate();
             Board_Init();
             // 关闭RGB_LED
             Board_LED_Set(0,false);    //red
             Board_LED_Set(1, false);    //green
             Board_LED_Set(2,false);    //blue
             Board_Button_Init();
             while (loop) {
                      if(Board_Button_Get(0))           Board_LED_Set(1, true);
                      else  Board_LED_Set(1,false );    //  sw2---  green

                      if(Board_Button_Get(1))           Board_LED_Set(2, true);
                      else  Board_LED_Set(2,false );    //  sw3---  blue

                      if(Board_Button_Get(2))           Board_LED_Set(0, true);
                      else  Board_LED_Set(0,false );    // wake ---  red
             }
             return0;
    }


    为定义按键的引脚分配,所定义结构类型及引脚配置如下:
    typedef struct {
             uint8_tport;
             uint8_tpin;
    } PORT_PIN_T;


    static const PORT_PIN_T btnBits[] = {{0,31}, {0, 4}, {0, 24}};
    static const uint32_t btnBits_ct =sizeof(btnBits) / sizeof(PORT_PIN_T);


    对应上述的按键引脚配置,其初始化函数为:
    static void Board_Button_Init(void)
    {
             uint32_ti;
             /*Pin muxing setup as part of board_sysinit */
             for(i = 0; i < btnBits_ct; i++) {
                      Chip_GPIO_SetPinDIRInput(LPC_GPIO,btnBits.port, btnBits.pin);
             }
    }

    经程序的编译和下载,其结果符合程序的设想,实现一键控制一个LED灯的作用。

    snap.jpg
    测试效果图
    有了上述的基础,后面我们就可以用I/O来驱动相应的显示屏,并以按键来控制程序的运行及参数的设置了。

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-24 18:42
  • 签到天数: 206 天

    [LV.7]常住居民III

    18

    主题

    312

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2762
    最后登录
    2024-5-28
    发表于 2021-2-4 18:37:38 | 显示全部楼层
    學習
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-4-2 00:20
  • 签到天数: 641 天

    [LV.9]以坛为家II

    1

    主题

    165

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1850
    最后登录
    2021-4-22
    发表于 2021-2-4 18:38:28 | 显示全部楼层
    本帖最后由 jennyzhaojie 于 2021-2-4 18:41 编辑
    哈哈图标有意思呀
                                     
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-29 11:11 , Processed in 0.108423 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表