触摸按键
Overview
以 AC638N 为例,提供触摸按键应用示例、工程配置、API 介绍和常见问题。
应用示例
具体的触摸按键源代码详见 sdk/bsp/AC638N/src/ctmu.c
ctmu.c
中参考示例如下:#include "asm/ctmu.h" static const struct ctmu_key_port test_touch_ctmu_port[] = { //按键0 { .press_delta = 10000, //变化量的阈值 .ch_io = CTMU_CH_PC02, //通道号 .key_value = 0x12, //预留的按键值 }, //按键1 { .press_delta = 10000, //变化量的阈值 .ch_io = CTMU_CH_PB06, //通道号 .key_value = 0x34, //预留的按键值 }, }; CTMU_PLATFORM_DATA_BEGIN(test_ctmu_pdata) .num = ARRAY_SIZE(test_touch_ctmu_port), .port_list = test_touch_ctmu_port, CTMU_PLATFORM_DATA_END() void ctmu_test(void) { log_info("***************** ctmu test ***************"); ctmu_init((void *)&test_ctmu_pdata); u8 key_num = 0; extern void wdt_clr(); while (1) { wdt_clr(); key_num = get_ctmu_value(); if (key_num != 0xff) { log_info("key_num = %d", key_num); } delay(100000); } }
工程配置
在 sdk/apps/main.c 中函数
user_main()
添加如下工程代码:int user_main() { extern void ctmu_test(void); ctmu_test(); }
编译下载后,在开发板的 PA2 和 PC2 分别通过一根杜邦线连接到铜牌,触摸铜牌,会打印对应铜牌的编号。
API参考
ADC常用相关API介绍,具体软件代码见 sdk/bsp/AC638N/src/ctmu.c
Functions
-
int ctmu_init(void *pdata)
ctmu总初始化函数
- Parameters:
pdata – 初始化的参数结构体地址 : struct ctmu_touch_key_platform_data *
- Returns:
0,成功 非0,失败
-
u8 get_ctmu_value(void)
获取注册的触摸按键的序号
- Returns:
按键序号
-
void ctmu_test(void)
sdk提供的参考函数