关于STM32F103+ESP8266与机智云一些开发中常见问题集合(萌新入门级)

本文分享了双创项目中使用STM32F103与ESP8266模块进行物联网开发的经验,强调新手应选择带串口的ESP8266开发板。作者推荐使用旧版机智云烧录工具,并详细介绍了固件烧录步骤、机智云平台操作、代码移植和串口调试。遇到的问题包括固件烧录失败、串口调试工具的选择等,文中给出了相应解决建议。
摘要由CSDN通过智能技术生成

本人是双创项目是关于STM32F103+ESP8266模块相关,因此研究了一下ESP8266模块,其中遇到了各种困难和常见问题,搜索了大量资料,很是繁琐。故而打算做个问题集合,以冀希望对萌新有所参考和帮助,少走些弯路。

一.关于ESP8266模块的选取  

重要事情说三遍:

 萌新一定强烈建议选择带有串口的ESP8266模块开发板!!!!!

 萌新一定强烈建议选择带有串口的ESP8266模块开发板!!!!!

 萌新一定强烈建议选择带有串口的ESP8266模块开发板!!!!!

本人曾选择正点原子的ATK-ESP8266模块,结果查阅了很多资料,动了很多手段,都无法烧录机智云固件,很是抓马,每次都停在固件烧录失败上,手动用杜邦线去RST复位啥的下固件,纯纯靠运气和手法,萌新不是很建议,最好是选择已经烧录好机智云固件的ESP8266模块或者带有串口下载的模块,无脑烧录固件,没那么麻烦,本人用的是以下图示这款:

 二、关于固件烧录:

机智云固件烧录,最好选择旧版本的烧录工具,不要选择新版的v3.9.1等的烧录工具,个人觉得不是非常好用,参数也没旧版那么多可调,我选择的是v3.6.1版本的烧录工具,如下图所示:

点击.exe文件,弹出对话框,选择ESP8266 download,然后进入到烧录界面,如果连接STM32进行通信的话,只需要烧录一个combine文件即可,如果是独立的ESP8266模块soc方案,则需要按网上方案烧录四个文件(ESP8266模块soc方案即为不接任何单片机,ESP8266模块自己作为主控芯片进行通信和控制的方案,本文不采用这种方案),combine文件烧录界面如下:

 注意:FLASH SIZE这行得看自己买的实际情况,有的是8Mbit,有的是32Mbit,串口波特率尽量选高,下载快的多。

 三.关于机智云平台操作

开发者中心部分:

进入机智云开发者中心,新建项目,最好不要选择已经配置好的智能照明等等的项目,先选择其他项目,更容易理解机智云内核,修改移植代码和自由度高:

建立好数据点后,记得在模组信息里选好自己对应的ESP8266型号,热点密码一般都是123456789,可改可不改,然后选择MCU开发,如果会用HAL库函数的话,可以选择C8T6X,但笔者习惯了用标准库函数,我选择的其他,以便进行代码移植:

 下载后,将以下代码文件copy到自己项目工程里面:

注意:main.c函数也必须替换,在此基础上来增入自己原有的程序。

然后进行代码移植,首先讲讲移植进入的程序里有哪些地方重要:

 protocol.c即Gizwits的协议文件,一般我们无需改动,我们要把自己的功能程序放入的地方在product.c文件中,下图所示的gizwitsEventProcess()函数里是放入的可写的数据点,我这定义的LED_drive可写数据点,因此在此函数里是EVENT _LED_drive事件,在此事件中下可加入程序,表明在此事件发生时的一些操作,原有代码框架已经给出示例,即下图2,我填入的是LED1亮灭,大家可以自行发挥自己想象,写入控制程序。

还有一个重要的函数是:userHandle()函数,这个函数目的是用户管理,一般放入的是只读等数据点,可以添加数据点进行赋值等等的操作,我这里选择的是ADC采样赋值。

 另外我们还需要一个串口,用以STM32F103和ESP8266模块的通信,一般常用的是Usart3,又要写串口中断函数则添加一个定时器,具体代码移植可以参考,这里不再赘述(33条消息) 一、基于STM32+ESP8266+机智云的物联网demo(含源码)_固件源码demo_Kevin的学习站的博客-CSDN博客

 手机端部分:

一定要注意!!!!要打开定位才能去配网,否则一直无脑弹出“Please switch to WIFI environment”,巨巨巨抓马。我建议最好是先SoftAP配网,再AirLink配网为好。

四.串口调试部分

在连接STM32F103之前,可以先ESP8266挂个串口进行调试配网,一般建议选择机智云官方自带的Gagent串口调试工具,不过我不知道为什么Gagent串口调试没有数据产生,因此我是用的Gagent调试配网,再在正点原子的XCOM看数据收发,若XCOM显示乱码,一定是固件烧录的原因,而且烧录固件以后要复位一下,或者重新插电,若XCOM显示“ ERR: Failed to rbWrite”,问题可能出在:

1:主函数未按顺序填入初始化,数据没初始化就调用了,可以按上文给出的blog文件代码顺序排列  2:主函数未包括对应的头文件,导致数据异常(笔者就是未包括ADC.h,导致一直报错抓马)

五:总结

本次研究开发锻炼了自己对物联网的兴趣和通信方面的兴趣,确实这个非常有意思,或许以后会走云技术物联网方向。本次是博主第一次发blog,水平有限,如有错误,还请指正!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值