单片机/MCU论坛
直播中

王辉

7年用户 1217经验值
私信 关注

如何使用矩阵按钮检查检测到的插槽ID?

我在以下环境中使用 CapSense 的矩阵按钮。
如果 cy_capsense_gettouchInfo 检测到两次触摸,那么第一个和第二个插槽 ID 存储在哪里?

  • 开发工具 :moduStoolBox 3.1
  • 设备:PSoC 4100S Max
                                                                                                                                                                                                                                                                                                                                                                                                        
                                                        

回帖(1)

马占云

2024-1-30 17:40:23
在使用矩阵按钮进行检测时,如果 `cy_capsense_gettouchInfo` 函数检测到两次触摸,则第一个和第二个插槽 ID 将存储在 `cy_touch_data_t` 类型的结构体数组 `touchInfo` 的 `slotId` 成员中。

以下是示例代码,演示如何使用 `cy_capsense_gettouchInfo` 函数获取插槽 ID:

```c
#include "cyhal.h"
#include "cybsp.h"
#include "cy_capsense.h"

// 定义触摸通道和触摸结构体数组的大小
#define CAPSENSE_CHANNELS 2
#define TOUCH_INFO_SIZE 2

int main(void)
{
    // 初始化PSoC设备
    cybsp_init();

    // 初始化PSoC的Capsense功能
    cy_capsense_init();

    // 设置触摸通道
    cy_capsense_enable(CAPSENSE_CHANNELS);

    // 定义用于存储触摸信息的结构体数组
    cy_touch_data_t touchInfo[TOUCH_INFO_SIZE];

    while(1)
    {
        // 获取触摸信息
        uint32_t touchCount = cy_capsense_gettouchInfo(touchInfo, TOUCH_INFO_SIZE);

        if(touchCount >= 2)
        {
            // 检测到至少两次触摸

            // 获取第一个和第二个触摸信息的插槽 ID
            uint8_t slotId1 = touchInfo[0].slotId;
            uint8_t slotId2 = touchInfo[1].slotId;

            // 在这里进行相应的处理
            // ...

        }

        // 延迟一段时间以便进行下一次检测
        cyhal_system_delay_ms(10);
    }
}
```

请注意,使用 `cy_capsense_gettouchInfo` 函数之前,需要首先通过 `cy_capsense_enable` 函数启用正确数量的触摸通道。

另外,这只是示例代码,如果您使用的是不同的开发工具,可能需要进行一些更改,以适应您的环境。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分