Funpack5-2 -使用EV41C56A实现触摸控制LED的设计
该项目使用了touch,实现了LED控制的设计,它的主要功能为:触摸按键实现LED的翻转。
标签
touch
Funpack5-2
EV41C56A
金玉其中
更新2026-06-15
8

项目介绍

本项目主要利用Microchip的PIC32CM LS00 Curiosity Nano+ Touch Evaluation Kit硬件平台作为开发平台,依托MPLAB开发环境,旨在实现以下核心功能:

一是通过编程正确初始化触摸通道;

二LED 控制逻辑清晰,不出现误触发;

三是设计并实现基本功能单次点击切换LED状态。

项目核心围绕三大要素展开:LED控制、触摸功能的实现以及避免误触发。我们需要进行具体功能的拆分,并逐步通过基本例程进行对应的功能实现,最后结合到一起达成预定功能目标。

硬件介绍

PIC32CM LS00 Curiosity Nano+ Touch 评估工具包 (EV41C56A)是一款专为评估 PIC32CM5164LS00048 微控制器的硬件平台。该套件基于安全且超低功耗的 ARM® Cortex®-M23 内核,集成了丰富的安全功能和触摸控制能力。这款评估套件还将安全启动、TrustZone® 技术、加密加速器与增强型触摸控制完美融合,是开发安全触摸应用的理想选择!


0

特性

PIC32CM5164LS00048 ARM® Cortex®-M23 内核微控制器

512KB Flash 存储器,超低功耗设计

安全启动(Secure Boot)+ ARM TrustZone® 技术

集成加密加速器,硬件安全保障

增强型外设触摸控制器(PTC),支持电容式触摸

智能模拟功能:运算放大器、ADC、DAC、模拟比较器

板载调试器,支持 MPLAB X IDE 开发环境

电压范围 1.7V-3.6V,MIC5353 稳压器支持最大 500mA

兼容 Curiosity Nano Base for Click boards™ 扩展

支持 mikroBUS™、Xplained Pro 接口扩展。

设计思路

本次是通过开发板的触摸按键实现控制LED的变化:

首先实现板卡led的输出控制;

接下来通过touch功能配置触摸按键通道;

最后加入防误触判断逻辑;

软件流程图以及功能实现说明

流程图:


0

模块化设计:


0

功能模块实现介绍及代码:

1、LED控制引脚的实现

LED控制实际上就是GPIO的输出控制,我们通过MCC的PIN引脚配置工具实现:


0

实际上使用的操作函数(自动生成的)如下:

GPIO_PA15_Toggle();

2、触摸按键的配置

触摸按键是我们本次主要使用的输出单元,通过板载的触摸按键实现功能,触摸按键连接的引脚是PA22,对应的是PTC模块的16通道:


0

然后我们进行MCC的touch模块配置,新建一个触摸按键,并于PA22引脚关联:


0

3、基本逻辑

按键通过循环扫描的方式进行不断的判断,目前我们设置的是20毫秒采集一次,也就是说在循环过程中每20毫秒就会输出一次状态,我们会根据状态来进行对标志位的处理,然后通过标志位之间的相互关系来实现对LED的控制,我们在测试过程中会发现,如果只有一层逻辑判断的话,他会不断的进行按键状态的更改(也就是快速闪烁),我们目前需要实现的状态是能识别出一次按键,这里的一次触碰是按下抬起为一次,所以我们在输出状态的基础上,又增加了一层逻辑关联,具体代码如下:

touch_process();
if(measurement_done_touch == 1u)
{
measurement_done_touch = 0u;
// process touch data
key_status = get_sensor_state(0) & KEY_TOUCHED_MASK;
if (0u != key_status) {
//Touch detect
if(key_updata_flag == 0)
key_down_flag = 1;

} else {
//Touch No detect
if(key_down_flag == 1)
{
key_down_flag = 0;
key_updata_flag = 1;
}
}
}

if(key_updata_flag == 1)
{
key_updata_flag = 0;
GPIO_PA15_Toggle();
}

难点和不解

在实际开发过程中遇到的最大的难点或者说是坑,主要出现了对触摸按键的控制,我们通过MCC进行touch配置似乎没有起到作用,后来在不关闭touch配置的情况下进行生成就又起作用了。另外一个就是实际产生的文件工程有两个,一个是我创建的功能,可是进行MCC配置后又生成了一个,不知道这是为什么。

效果展示



效果主要实现的是触摸按键实现LED的切换,实际效果详见视频。

心得体会

在本次的实践活动中,具体体验了一下MPLAB的具体开发流程,以及重点的触摸按键工具的应用,虽然过程中有曲折不过通过不断的尝试,也算有惊无险的实现了任务,这个Touch的库真的好用,还是可视化,和这次的开发板也非常的搭配,体验了一次不一样的操作流程。

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