收藏官网首页
查看: 60344|回复: 6

[求助] ESP-12F SOC方案GPIO问题

4

主题

13

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
跳转到指定楼层
楼主
发表于 2018-8-8 11:35:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
为什么我从机智云下载的SOC然后想测试下控制GPIO输出的电平。只有GPIO5能正常的控制,其他脚要么是只高电平或低电平,控制不了?
请问这是什么原因?是不是还需要对GPIO的初始化设置?是的话要怎么做?写个实例谢谢了。

15

主题

135

帖子

2183

积分

金牌会员

Rank: 6Rank: 6

积分
2183
沙发
发表于 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初始化程序,

4

主题

13

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
板凳
 楼主| 发表于 2018-8-8 17:08:16 | 只看该作者
Seasonic 发表于 2018-8-8 15:16
需要初始化,请参考RGB的GPIO初始化程序,

确实是这个问题,谢谢了

0

主题

3

帖子

38

积分

新手上路

Rank: 1

积分
38
地板
发表于 2018-8-8 18:56:53 | 只看该作者
我用的安信可的模块初始化了都不能控制会是什么问题呢

点评

贴上程序看看  详情 回复 发表于 2018-8-9 09:26

4

主题

13

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
5#
 楼主| 发表于 2018-8-9 09:26:41 | 只看该作者
教您5分钟接入机智云,实现傻瓜式开发
duanjun0551 发表于 2018-8-8 18:56
我用的安信可的模块初始化了都不能控制会是什么问题呢

贴上程序看看

0

主题

3

帖子

38

积分

新手上路

Rank: 1

积分
38
6#
发表于 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

4

主题

13

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
7#
 楼主| 发表于 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");
}
这样子初始化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

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

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