Funpack5-2 - 用EV41C56A实现触摸控制LED
该项目使用了Microchip EV41C56A 开发板,实现了触摸输入与LED控制的设计,它的主要功能为:单次触摸点亮板载LED,再次触摸关闭LED。
标签
嵌入式系统
Funpack活动
xusp99
更新2026-06-16
9

一、项目介绍

第五季第2期板卡是来自Microchip的EV41C56A(PIC32CM LS00 Curiosity Nano+ Touch Evaluation Kit),这是一款为触摸应用设计的安全低功耗评估套件。该套件基于安全且超低功耗的 ARM® Cortex®-M23 内核,集成了丰富的安全功能和触摸控制能力。这款评估套件将安全启动、TrustZone® 技术、加密加速器与增强型触摸控制完美融合,是开发安全触摸应用的理想选择。


二、任务:触摸输入与LED控制

基础题目:【难度:⭐️】

使用 EV41C56A 开发板板载触摸按键功能,实现以下逻辑:

  1. 单次触摸 → 点亮板载LED
  2. 再次触摸 → 关闭LED

功能要求:

  1. 正确初始化触摸通道
  2. LED 控制逻辑清晰,不出现误触发


三、系统流程图

项目采用MPLAB IDE来设计、开发和烧录。新建项目后,进行管脚和触摸引脚的配置,并生成初始化系统代码,然后在main函数中进行任务的代码开发。循环判断获取触摸传感器的状态,如果有触摸,LED输出电压进行反转既可,这样就实现了任务的要求。具体参见下面的流程图,以及开发时候的管脚等的配置图片。

下图为硬件配置截图。其中PA15为LED指示灯对应引脚,因此设置为GPIO并输出。而PA22为触摸控制器,因此设置为PTC_X16/Y16,用于感知用于的触摸,从而控制LED灯的亮灭。


四、代码实战

由于本任务相对来说比较简单,因此代码比较少,主要是判断是否触摸,以及进行管脚输出电压的反转。在main函数中,首先进行系统初始化操作,然后进入死循环,先获取触摸状态,然后判断是否有触摸,并且判断最近一次状态,防止长时间触摸的误操作,最终进行LED状态的反转,从而可以通过触摸功能完成对应的开关灯操作。具体参见下图。

int main ( void )
{
    uint32_t msp_ns = *((uint32_t *)(TZ_START_NS));
    volatile funcptr_void NonSecure_ResetHandler;


    /* Initialize all modules */
    SYS_Initialize ( NULL );


    if (msp_ns != 0xFFFFFFFF)
    {
        /* Set non-secure main stack (MSP_NS) */
        __TZ_set_MSP_NS(msp_ns);


        /* Get non-secure reset handler */
        NonSecure_ResetHandler = (funcptr_void)(*((uint32_t *)((TZ_START_NS) + 4U)));


        /* Start non-secure state software application */
        NonSecure_ResetHandler();
    }


    uint8_t key_last =0;
    while ( true )
    {
        touch_process();
        uint8_t key_status = get_sensor_state(0) & KEY_TOUCHED_MASK;
        if(key_status && !key_last){
            GPIO_PA15_Toggle();
        }
        key_last = key_status;
    }


    /* Execution should not come here during normal operation */
    return ( EXIT_FAILURE );
}

下图是触摸后的LED进行发光,再次触摸LED会关闭,具体可以参见上面的视频。

五、心得体会

由于初次使用MPLAB的IDE进行项目开发,开始花费了不少时间来熟悉环境的使用和配置,经过一段时间的练习,已经基本上了解了整个开发流程和技巧,通过本次任务又学会了一项新的技能,特别感谢主办方及相关企业。


附件下载
LED.zip
团队介绍
个人
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号