触摸按键
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提供的参考函数