收藏官网首页
查看: 60992|回复: 12

[求助] 真无语!仍然无法控制ESP8266的GPIO口

2

主题

8

帖子

112

积分

注册会员

Rank: 2

积分
112
跳转到指定楼层
楼主
发表于 2017-1-23 15:23:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
校园创客福利
先**一下,本人是接触esp8266的新手,对于ESP8266,什么都不懂。本人用安信可提供的编译环境Cygwin_Eclipse_IDE编译从官方下载的SDK示例ESP8266_NONOS_SDK_v1.5.4,将原来app文件夹内的内容全部删除,将examples中的at文件夹全部内容复制到app文件夹下,进入编译环境,先添加#include "gpio.h",然后用户执行程序void user_init(void)下添加对GPIO口的设置与控制语句:
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);//设置IO口
GPIO_OUTPUT_SET(FUNC_GPIO12,0);//GPIO12置低
//GPIO_OUTPUT_SET(BIT12,0);//GPIO12置低
经编译下载后,GPIO12无法拉低,这是怎么回事?
在语句PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);上有提示:Suggested parenthesis around expression 'PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12)'这是什么意思?如何解决?
当前void user_init(void)程序如下:
void user_init(void)
{
    char buf[64] = {0};
    at_customLinkMax = 5;
    at_init();
    os_sprintf(buf,"compile time:%s %s",__DATE__,__TIME__);
    at_set_custom_info(buf);
    at_port_print("\r\nready\r\n");
    at_cmd_array_regist(&at_custom_cmd[0], sizeof(at_custom_cmd)/sizeof(at_custom_cmd[0]));
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);
    //PIN_PULLUP_EN(BIT12);
    GPIO_OUTPUT_SET(FUNC_GPIO12,0);
}
望专家们能在百忙中抽出时间给予解答,百倍感谢!

编译提示01.jpg (210.8 KB, 下载次数: 217)

编译提示01.jpg

1

主题

9

帖子

361

积分

中级会员

Rank: 3Rank: 3

积分
361
推荐
发表于 2019-1-12 17:07:32 | 只看该作者
同样的问题GPIO_OUTPUT_SET(GPIO_ID_PIN(12),0);测试不工作,一样程序如果改成GPIO_OUTPUT_SET(GPIO_ID_PIN(2),0)可以工作,哪儿设置不对。。。。

0

主题

29

帖子

132

积分

注册会员

Rank: 2

积分
132
板凳
发表于 2017-1-24 10:29:16 | 只看该作者
首先,只是初始化IO,没有程序逻辑是无法实现控制的,不理解整个工程结构之前不要随便删除SDK里面的文件,修改可以参考下面的图片IOT_Demo的例子修改,另外可以尝试是用用机智云的soc方案开发http://docs.gizwits.com/zh-cn/deviceDev/UseSOC.html~



另外說一下AT不是一個修改源碼操作IO的源碼來的,他是一個mcu+wifi模塊的構架,mcu發送at指令,wifi模塊直接判斷執行,你去如果需要修改的話,使用IOT_Deme這個example吧~

点评

应该说AT修改乐鑫在1.0.0版本之后的sdk就不再开源了,学习入门的话也不建议去修改AT源码~  详情 回复 发表于 2017-1-24 10:32

0

主题

29

帖子

132

积分

注册会员

Rank: 2

积分
132
地板
发表于 2017-1-24 10:32:09 | 只看该作者
猫小生 发表于 2017-1-24 10:29
首先,只是初始化IO,没有程序逻辑是无法实现控制的,不理解整个工程结构之前不要随便删除SDK里面的文件, ...

应该说AT修改乐鑫在1.0.0版本之后的sdk就不再开源了,学习入门的话也不建议去修改AT源码~

2

主题

8

帖子

112

积分

注册会员

Rank: 2

积分
112
5#
 楼主| 发表于 2017-1-24 11:55:48 | 只看该作者
注册成为机智云开发者,手机加虚拟设备快速开发
我真想利用ESP8266中的MCU功能,用内部程序直接控制WIFI,而不用外加MCU。这SDK好奇怪的,明明是按照他们的手册《ESP8266 Non-OS SDK API 参考》和《ESP8266 技术参考》操作了,怎么就得不到结果?

2

主题

8

帖子

112

积分

注册会员

Rank: 2

积分
112
6#
 楼主| 发表于 2017-1-24 11:59:27 | 只看该作者
这机智云平台好像只支持AT控制无法利用ESP8266的GPIO或其他MCU功能吧?ESP8266内部的MCU功能好多呀!

点评

看看soc esp8266 方案,这个就是利用了esp8266的其他功能,如GPIO,PWM等  详情 回复 发表于 2017-1-24 13:04

321

主题

1054

帖子

4502

积分

论坛元老

Rank: 8Rank: 8

积分
4502
QQ
7#
发表于 2017-1-24 13:04:23 | 只看该作者
机智云新手 发表于 2017-1-24 11:59
这机智云平台好像只支持AT控制无法利用ESP8266的GPIO或其他MCU功能吧?ESP8266内部的MCU功能好多呀! ...

看看soc esp8266 方案,这个就是利用了esp8266的其他功能,如GPIO,PWM等
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

2

主题

8

帖子

112

积分

注册会员

Rank: 2

积分
112
8#
 楼主| 发表于 2017-1-24 13:31:20 | 只看该作者
本帖最后由 机智云新手 于 2017-1-24 13:55 编辑

机智云的SOC方案中SDK user_main.c中的注释是中文乱码,现在的水平也很难理解它的意思,还有,怎么找不到void user_init(void)入口 ?

机智云SOC方案01.jpg (226.11 KB, 下载次数: 202)

机智云SOC方案01.jpg

2

主题

8

帖子

112

积分

注册会员

Rank: 2

积分
112
9#
 楼主| 发表于 2017-1-24 13:56:32 | 只看该作者
本帖最后由 机智云新手 于 2017-1-24 13:59 编辑

还有,用Cygwin_Eclipse_IDE编译,怎么不会生成user1.4096.new.6.bin?
1.源码编译方式
  1. cd app/
  2. ./gen_misc.sh

2.库编译方式
  1. 先用源码编译方式,生成libgagent.a 库路径为:"app/gagent/.output/eagle/debug/lib"
  2. cp app/gagent/.output/eagle/debug/lib/libgagent.a ../lib/
  3. mv makefile makefile_src
  4. mv makefile_lib makefile
  5. ./gen_misc.sh

上述的说明还未能理解,望高手指点,多谢!

哦,void ICACHE_FLASH_ATTR user_init(void) 应该就是  void  user_init(void)了吧。



6

主题

49

帖子

1245

积分

金牌会员

Rank: 6Rank: 6

积分
1245
10#
发表于 2017-1-26 12:15:01 | 只看该作者
校园创客福利
机智云新手 发表于 2017-1-24 13:31
机智云的SOC方案中SDK user_main.c中的注释是中文乱码,现在的水平也很难理解它的意思,还有,怎么找不到vo ...

可能是文件的编码格式乱了, 很多软件都有编码格式转换的功能, 转为 GBK (国标码)即可, 如果连这都搞不定, 你就不是 机智云新手, 应该是电脑小白了

1

主题

6

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
11#
发表于 2017-2-24 00:58:46 | 只看该作者
GPIO_OUTPUT_SET(FUNC_GPIO12,0);
第一个参数不对吧,应该用GPIO_ID_PIN(12)选择到GPIO12吧?

0

主题

2

帖子

126

积分

注册会员

Rank: 2

积分
126
12#
发表于 2017-10-14 16:42:04 | 只看该作者
我也遇到了这个问题请问楼主是怎么解决的

0

主题

1

帖子

7

积分

新手上路

Rank: 1

积分
7
13#
发表于 2021-4-29 16:50:11 | 只看该作者
旮旯风行 发表于 2019-1-12 17:07
同样的问题GPIO_OUTPUT_SET(GPIO_ID_PIN(12),0);测试不工作,一样程序如果改成GPIO_OUTPUT_SET(GPIO_ID_P ...

请问你现在解决这个问题了吗?我现在是GPIO0和GPIO2都没法控制,不知道怎么回事,初始化以后想把GPIO0拉高这个成功了,把GPIO2拉低这个就不行,而且我控制输出的电平都是脉冲式的,并不能直接拉低这个这个怎么解决?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

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

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