收藏官网首页

ESP-12F SOC方案GPIO问题

查看数: 42629 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-8-8 11:35

正文摘要:

为什么我从机智云下载的SOC然后想测试下控制GPIO输出的电平。只有GPIO5能正常的控制,其他脚要么是只高电平或低电平,控制不了? 请问这是什么原因?是不是还需要对GPIO的初始化设置?是的话要怎么做?写个实例谢谢 ...

回复

Jave 发表于 2018-8-14 09:56:27
duanjun0551 发表于 2018-8-13 18:05
定义
#define led_on()     PIN_PULLUP_EN(GPIO_OUTPUT_4);
//GPIO_OUTPUT_SET(GPIO_ID_PIN(4),1);

#define Relay1                                12
#define Relay2                                13

#define Relay1_ON()                        GPIO_OUTPUT_SET(GPIO_ID_PIN(Relay1),1)
#define Relay1_OFF()                GPIO_OUTPUT_SET(GPIO_ID_PIN(Relay1),0)
#define Relay2_ON()                        GPIO_OUTPUT_SET(GPIO_ID_PIN(Relay2),1)
#define Relay2_OFF()                GPIO_OUTPUT_SET(GPIO_ID_PIN(Relay2),0)

void ICACHE_FLASH_ATTR switchInit(void)
{
        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);
        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13);

        gpio_output_set(0,0,GPIO_ID_PIN(Relay1)|GPIO_ID_PIN(Relay2),0);
        os_printf("switchGpioInit \r\n");
}
这样子初始化
duanjun0551 发表于 2018-8-13 18:05:05

定义
#define led_on()     PIN_PULLUP_EN(GPIO_OUTPUT_4);
//GPIO_OUTPUT_SET(GPIO_ID_PIN(4),1);
#define led_off()    PIN_PULLUP_DIS(GPIO_OUTPUT_4);
//GPIO_OUTPUT_SET(GPIO_ID_PIN(4),0);
#define switchon()    GPIO_OUTPUT_SET(GPIO_ID_PIN(4),1);
#define switchoff()   GPIO_OUTPUT_SET(GPIO_ID_PIN(4),0);

for(i = 0; i < info->num; i++)
    {
        switch(info->event)
        {
        case EVENT_inhome_light :
            currentDataPoint.valueinhome_light = dataPointPtr->valueinhome_light;
            GIZWITS_LOG("Evt: EVENT_inhome_light %d \n", currentDataPoint.valueinhome_light);
            if(0x01 == currentDataPoint.valueinhome_light)
            {
                //user handle
                //gpio16_output_set(1);
                //GPIO_OUTPUT_SET(GPIO_OUTPUT12_FUNC,1);
                       GPIO_OUTPUT_SET(GPIO_ID_PIN(GPIO_OUTPUT_4_NUM), 1);
                 GPIO_OUTPUT_SET(4, 1);
                 GIZWITS_LOG("GPIO-ON\n");
                 led_on();
                  switchon();
                  gpio_output_set(BIT4, 0, BIT4, 0);
                 STA[0]= 1;
            }
            else
            {
                //user handle
                //gpio16_output_set(0);
                //GPIO_OUTPUT_SET(GPIO_OUTPUT12_FUNC,0);
                GPIO_OUTPUT_SET(GPIO_ID_PIN(GPIO_OUTPUT_4_NUM), 0);
                 GPIO_OUTPUT_SET(4, 0);
                GIZWITS_LOG("GPIO-OFF\n");
                led_off();
                 switchoff();
                 gpio_output_set(0, BIT4, BIT4, 0);
                STA[0]= 0;
            }
            break;

初始化代码
        PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
      

点评

#define Relay1 12 #define Relay2 13 #define Relay1_ON() GPIO_OUTPUT_SET(GPIO_ID_PIN(Relay1),1) #define Relay1_OFF() GPIO_OUTPUT_SET(GPIO_ID_PIN(Relay1),0) #define Relay2_ON() GPIO_OUTPUT_S  详情 回复 发表于 2018-8-14 09:56
Jave 发表于 2018-8-9 09:26:41
duanjun0551 发表于 2018-8-8 18:56
我用的安信可的模块初始化了都不能控制会是什么问题呢

贴上程序看看
duanjun0551 发表于 2018-8-8 18:56:53
我用的安信可的模块初始化了都不能控制会是什么问题呢

点评

贴上程序看看  详情 回复 发表于 2018-8-9 09:26
Jave 发表于 2018-8-8 17:08:16
Seasonic 发表于 2018-8-8 15:16
需要初始化,请参考RGB的GPIO初始化程序,

确实是这个问题,谢谢了
Seasonic 发表于 2018-8-8 15:16:27
  1. void ICACHE_FLASH_ATTR rgbGpioInit(void)
  2. {
  3.     /* Migrate your driver code */

  4.     // SCL/SDA
  5.     PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);

  6.     PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);

  7.     gpio_output_set(0, 0, GPIO_ID_PIN(GPIO_RGB_SCL) | GPIO_ID_PIN(GPIO_RGB_SDA), 0); //| GPIO_ID_PIN(GPIO_RGB_POW)

  8.     os_printf("rgbGpioInit \r\n");
  9. }
复制代码

需要初始化,请参考RGB的GPIO初始化程序,
加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表