潍坊菜鸟0995 发表于 2017-6-6 14:52:33

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.png

bigfanofloT 发表于 2017-6-6 15:17:52

soc版微信宠物屋源码有长短按按键例程

海底沙 发表于 2017-7-24 18:14:06

不知你解决没,给个你参考
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]
查看完整版本: soc方案,想做个按键短按实现开和关,长按进alink模式