项目介绍
项目功能介绍
本次任务基于Microchip的EV41C56A(PIC32CM LS00 Curiosity Nano+ Touch Evaluation Kit)实现通过触摸按键和LED模块实现触摸按键控制LED的功能,这里主要是设计两个板载模块,来实现控制功能,我们可以通过MPLAB X IDE进行Microchip单片机的开发。
设计思路
该项目需要实现的主要有两部分:
1、触摸按键和LED的初始化;
2、触摸按键控制LED的逻辑。
硬件框图

软件流程图

硬件介绍
PIC32CM LS00 Curiosity Nano+ Touch 评估工具包与适用于Click boards™的Curiosity Nano 基板AC164162 兼容。该适用于Click 板的基板包括:一个Curiosity Nano+ Touch 插座、三个mikroBUS™插座和一个Xplained Pro 插座。Curiosity Nano+ Touch 评估工具包、适用于Click 板的Curiosity Nano 基板和接口板使开发人员能够轻松利用传感器和连接模块等对设计进行扩展。Curiosity Nano+ Touch 是一个评估平台,提供一组可访问大多数单片机I/O 的小型板。该平台由一系列低引脚数单片机(MCU)板组成,这些板与MPLAB X IDE 集成,可提供相关用户指南、应用笔记、数据手册和示例代码。该平台具有用于与主机PC 串行通信的虚拟COM 端口(CDC)和数据网关接口(DataGateway Interface,DGI)GPIO。

关键参数
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 接口扩展
主要代码片段和介绍
1、外设配置
2、呼吸灯效果控制
外部接口是PA15,GPIO输出:
LED相关代码如下:
typedef enum {
LED_OFF,
LED_ON
} LedState;
static LedState LED1;
static void LED_Toggle(void)
{
LED1 = (LED1 == LED_OFF) ? LED_ON : LED_OFF;
if (LED1 == LED_ON) {
GPIO_PA15_Set();
} else {
GPIO_PA15_Clear();
}
}
3、滑动控制的实现
添加 Touch模块,会自动添加RTC和PTC模块,然后可以在 [Project Graph] -> [Plugins] -> [Touch Configuration] 内进行具体的配置。先添加一个按键,默认是1个引脚,我们需要添加一个引脚:
之后将传感器与引脚绑定:
然后就可以在while中直接使用使用以下代码进行触摸按键的检测:
while (true) {
touch_process();
if (measurement_done_touch == 1u) {
measurement_done_touch = 0u;
uint8_t key_status = get_sensor_state(TOUCH_SENSOR_KEY_0);
bool touch_Nowstate = (bool)(key_status & KEY_TOUCHED_MASK);
if (touch_Nowstate && !touch_check) {
LED_Toggle();
}
touch_check = touch_Nowstate;
}
}
效果展示
可以看到我们通过触摸按键控制LED的操作:

心得体会
在本次的实践活动中,我深入且具体地体验了MPLAB的完整开发流程,从项目创建、代码编写、编译调试到最终烧录至开发板,每一步都亲力亲为,收获颇丰。其中,我尤为关注并重点实践了触摸按键工具的应用,这一环节不仅考验了我的编程技巧,还让我对硬件交互有了更直观的理解。尽管在开发过程中遭遇了一些曲折,比如安全特性导致开发不匹配,但通过不断的尝试与调整,我逐渐克服了这些难题,最终有惊无险地成功实现了任务目标。特别值得一提的是,这个Touch库的设计真的非常人性化,不仅功能强大,而且提供了可视化的操作界面,使得配置和调试过程变得异常简便。它与我们这次使用的开发板完美搭配,极大地提升了开发效率,让我体验了一次与以往截然不同的、高效且顺畅的操作流程。