机智云新手 发表于 2017-1-23 15:23:15

真无语!仍然无法控制ESP8266的GPIO口

先**一下,本人是接触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 = {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, sizeof(at_custom_cmd)/sizeof(at_custom_cmd));    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);    //PIN_PULLUP_EN(BIT12);    GPIO_OUTPUT_SET(FUNC_GPIO12,0);} 望专家们能在百忙中抽出时间给予解答,百倍感谢!

旮旯风行 发表于 2019-1-12 17:07:32

同样的问题GPIO_OUTPUT_SET(GPIO_ID_PIN(12),0);测试不工作,一样程序如果改成GPIO_OUTPUT_SET(GPIO_ID_PIN(2),0)可以工作,哪儿设置不对。。。。

猫小生 发表于 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吧~

猫小生 发表于 2017-1-24 10:32:09

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

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

机智云新手 发表于 2017-1-24 11:55:48

我真想利用ESP8266中的MCU功能,用内部程序直接控制WIFI,而不用外加MCU。这SDK好奇怪的,明明是按照他们的手册《ESP8266 Non-OS SDK API 参考》和《ESP8266 技术参考》操作了,怎么就得不到结果?

机智云新手 发表于 2017-1-24 11:59:27

这机智云平台好像只支持AT控制无法利用ESP8266的GPIO或其他MCU功能吧?ESP8266内部的MCU功能好多呀!

bigfanofloT 发表于 2017-1-24 13:04:23

机智云新手 发表于 2017-1-24 11:59
这机智云平台好像只支持AT控制无法利用ESP8266的GPIO或其他MCU功能吧?ESP8266内部的MCU功能好多呀! ...

看看soc esp8266 方案,这个就是利用了esp8266的其他功能,如GPIO,PWM等

机智云新手 发表于 2017-1-24 13:31:20

本帖最后由 机智云新手 于 2017-1-24 13:55 编辑

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

机智云新手 发表于 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) 应该就是voiduser_init(void)了吧。



szuser 发表于 2017-1-26 12:15:01

机智云新手 发表于 2017-1-24 13:31
机智云的SOC方案中SDK user_main.c中的注释是中文乱码,现在的水平也很难理解它的意思,还有,怎么找不到vo ...

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

yanno 发表于 2017-2-24 00:58:46

GPIO_OUTPUT_SET(FUNC_GPIO12,0);
第一个参数不对吧,应该用GPIO_ID_PIN(12)选择到GPIO12吧?

皮皮虾啊 发表于 2017-10-14 16:42:04

我也遇到了这个问题请问楼主是怎么解决的

求知欲无穷大大 发表于 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拉低这个就不行,而且我控制输出的电平都是脉冲式的,并不能直接拉低这个这个怎么解决?
页: [1]
查看完整版本: 真无语!仍然无法控制ESP8266的GPIO口