|
不知你解决没,给个你参考
user_main.c
bool key_data = 0; //按键状态: 0 关 1 开
/**@name 按键相关定义
* @{
*/
#define GPIO_KEY_NUM 1 ///< 定义按键成员总数
#define KEY_0_IO_MUX PERIPHS_IO_MUX_GPIO4_U ///< ESP8266 GPIO 功能
#define KEY_0_IO_NUM 4 ///< ESP8266 GPIO 编号
#define KEY_0_IO_FUNC FUNC_GPIO4 ///< ESP8266 GPIO 名称
/**
* key1按键短按处理
* @param none
* @return none
*/
LOCAL void ICACHE_FLASH_ATTR key1ShortPress(void)
{
if(0 == key_data)
{
jdq1On(); //开关动作
key_data = 1; //置状态为开
currentDataPoint.valuesocket_OnOff_a = 1; //上报状态到云端数据点
os_printf("#### KEY short press ,switch On\n");
}
else
{
jdq1Off();
key_data = 0;
currentDataPoint.valuesocket_OnOff_a = 0;
os_printf("#### KEY short press ,switch Off\n");
}
}
/**
* key1按键长按处理
* @param none
* @return none
*/
LOCAL void ICACHE_FLASH_ATTR key1LongPress(void)
{
os_printf("#### key1 long press, airlink mode\n");
//gizwitsSetMode(WIFI_AIRLINK_MODE);
}
/**
* 按键初始化
* @param none
* @return none
*/
LOCAL void ICACHE_FLASH_ATTR keyInit(void)
{
singleKey[0] = keyInitOne(KEY_0_IO_NUM, KEY_0_IO_MUX, KEY_0_IO_FUNC,
key1LongPress, key1ShortPress);
keys.singleKey = singleKey;
keyParaInit(&keys);
}
|
|