soc方案,想做个按键短按实现开和关,长按进alink模式
soc方案,想做个按键短按实现开和关,长按进alink模式,试了好几种方法,都不成功,哪位大神能给写个代码学学啊,file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\1124722468\QQ\WinTemp\RichOle\1QSD_KLN1SG))I{JC)L%)DE.pngfile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\1124722468\QQ\WinTemp\RichOle\1QSD_KLN1SG))I{JC)L%)DE.pngsoc版微信宠物屋源码有长短按按键例程 不知你解决没,给个你参考
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 = keyInitOne(KEY_0_IO_NUM, KEY_0_IO_MUX, KEY_0_IO_FUNC,
key1LongPress, key1ShortPress);
keys.singleKey = singleKey;
keyParaInit(&keys);
}
页:
[1]