真无语!仍然无法控制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);} 望专家们能在百忙中抽出时间给予解答,百倍感谢! 同样的问题GPIO_OUTPUT_SET(GPIO_ID_PIN(12),0);测试不工作,一样程序如果改成GPIO_OUTPUT_SET(GPIO_ID_PIN(2),0)可以工作,哪儿设置不对。。。。首先,只是初始化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:29
首先,只是初始化IO,没有程序逻辑是无法实现控制的,不理解整个工程结构之前不要随便删除SDK里面的文件, ...
应该说AT修改乐鑫在1.0.0版本之后的sdk就不再开源了,学习入门的话也不建议去修改AT源码~ 我真想利用ESP8266中的MCU功能,用内部程序直接控制WIFI,而不用外加MCU。这SDK好奇怪的,明明是按照他们的手册《ESP8266 Non-OS SDK API 参考》和《ESP8266 技术参考》操作了,怎么就得不到结果? 这机智云平台好像只支持AT控制无法利用ESP8266的GPIO或其他MCU功能吧?ESP8266内部的MCU功能好多呀! 机智云新手 发表于 2017-1-24 11:59
这机智云平台好像只支持AT控制无法利用ESP8266的GPIO或其他MCU功能吧?ESP8266内部的MCU功能好多呀! ...
看看soc esp8266 方案,这个就是利用了esp8266的其他功能,如GPIO,PWM等 本帖最后由 机智云新手 于 2017-1-24 13:55 编辑
机智云的SOC方案中SDK user_main.c中的注释是中文乱码,现在的水平也很难理解它的意思,还有,怎么找不到void user_init(void)入口 ? 本帖最后由 机智云新手 于 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)了吧。
机智云新手 发表于 2017-1-24 13:31
机智云的SOC方案中SDK user_main.c中的注释是中文乱码,现在的水平也很难理解它的意思,还有,怎么找不到vo ...
可能是文件的编码格式乱了, 很多软件都有编码格式转换的功能, 转为 GBK (国标码)即可, 如果连这都搞不定, 你就不是 机智云新手, 应该是电脑小白了 GPIO_OUTPUT_SET(FUNC_GPIO12,0);
第一个参数不对吧,应该用GPIO_ID_PIN(12)选择到GPIO12吧? 我也遇到了这个问题请问楼主是怎么解决的 旮旯风行 发表于 2019-1-12 17:07
同样的问题GPIO_OUTPUT_SET(GPIO_ID_PIN(12),0);测试不工作,一样程序如果改成GPIO_OUTPUT_SET(GPIO_ID_P ...
请问你现在解决这个问题了吗?我现在是GPIO0和GPIO2都没法控制,不知道怎么回事,初始化以后想把GPIO0拉高这个成功了,把GPIO2拉低这个就不行,而且我控制输出的电平都是脉冲式的,并不能直接拉低这个这个怎么解决?
页:
[1]