STM32 ESP8266模块的曲折探索

news2024/11/24 11:05:01

这是本文的配套资料,最终工程请参考 新_ESP8266资料\stm32f103成功移植的项目

【免费】stm32f103c8t6esp8266资料资源-CSDN文库

一、等到了ready

产品参数

我使用的是ai-thinker的esp8266-01s,以下为产品规格书

引脚定义: 

 依据引脚定义,GND接GND,VCC接3.3V,TX接USB转TTL的Rx, Rx 接USB转TTL的RX,之后尝试多次,都只是显示

初次尝试

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

[12:27:20.994]

[12:27:20.994] load 0x40100000, len 6960, room 16

[12:27:21.004] tail 0

[12:27:21.004] chksum 0xa5

[12:27:21.004] load 0x3ffe8008, len 24, room 8

[12:27:21.014] tail 0

[12:27:21.014] chksum 0x1c

[12:27:21.014] load 0x3ffe8020, len 3196, room 8

[12:27:21.024] tail 4

[12:27:21.024] chksum 0xde

[12:27:21.024] csum 0xde

[12:27:21.211]

[12:27:21.214] ets Jan 8 2013,rst cause:4, boot mode:(3,6)

[12:27:21.224]

[12:27:21.224] wdt reset

[12:27:21.224] ets_main.c

查了许多资料,说是没刷固件,于是用flash down tool刷固件,可总是停在sync,最终看到这位大佬的文章:ESP8266烧录固件提示等待上电同步,下载失败-CSDN博客

尝试后问题虽解决,但总是烧录不了,以下是日志:

0x3ff00050: 17790000
0x3ff00054: 020078bc
0x3ff00058: 1c00b000
0x3ff0005c: 00c8c9a3
check_err_0: 0bcheck_err_1: 00check_err_2: 00check_err_3: 02check_err_4: 0b====================
EFUSE NORMAL MODE 

接到5v依旧不行,我认为不是电源问题。。。

找到问题(电源)

知道某一天,我购买了tft lcd屏幕,vcc gnd接好,但就是不亮!当时改了三天的驱动,依旧不行。抱着死马当活马医的心态,我用两节干电池供电,居然亮了!!!我于是意识到电源不对,用万用表检测3.3v引脚和gnd引脚之间的电压,发现只有2.23V!!!我不用jlink供电,直接供电,再次测量,是3.27V,看来,这jlink害人不浅!!!

最终,终于等到了ready!!!

电脑上也能看到ESP_XXX的WiFi 

我尝试了很多供电方式,发现两节干电池供电不稳,一直乱码;插座上的USB供电,电流不够,esp8266反复重启;USB转TTL供电显示ets Jan 8 2013,rst cause:4, boot mode:(3,6) 。只有用USB充电线连接电脑USB口和stm32f103电源接口时才显示ready。

二、测试AT指令

使用友善串口助手测试,但发送了AT、AT\r\n都没反应,使用ai-thinker官方的串口调试助手成功接收到OK 

3.2.1. AT—测试 AT 启动

AT+RST—重启模块

AT+GMR—查询版本信息

AT+CIPSERVER—建⽴ TCP 服务器

AT+CIPSERVERMAXCONN—设置服务器允许建⽴的最⼤连接数

AT+CIPMODE—设置传输模式 AT+SAVETRANSLINK—保存透传到 Flash

AT+CIPSTO—设置 TCP 服务器超时时间

AT+PING—Ping 功能

AT+CIUPDATE—通过 Wi-Fi 升级软件

AT+CIPDINFO—接收⽹络数据时是否提示对端 IP 和端⼝

+IPD—接收⽹络数据

AT+CIPRECVMODE—设置 TCP 连接的数据接收⽅式

AT+CIPRECVDATA—被动接收模式时,读取缓存的 TCP 数据

AT+CIPRECVLEN—被动接收模式时,查询缓存 TCP 数据的⻓度

AT+CIPSNTPCFG—设置时域和 SNTP 服务器.

AT+CIPSNTPTIME—查询 SNTP 时间..................................................

详细指令可参考 本文资料

三、移(白)植(嫖)onenet驱动

找驱动

onenet例程可参考本文资料

我是用的是这个免费的公共mqtt服务器:免费的公共 MQTT 服务器 | EMQ (emqx.com)

下载好我提供的资料后,打开 新_ESP8266资料\2.OneNET-V3.2-OneNET-裸机-基础例程\21.MQTT-例程\1.ESP8266-MQTT-订阅、发布主题

查看引脚定义,发现stm32f103c8t6的RX引脚有PA3和PA10 ,TX有PA2和PA9

这里我们使用PA2、PA3和esp8266通信,PA9和PA10和电脑通信,便于调试

main.c中     const char *topics[] = {"kylinBoard"}; 设置mqtt通信的主题,可参考这位大佬的博文:详解MQTT主题和通配符_mqtt topic 通配符-CSDN博客

做微调

esp8266.c中

#define ESP8266_WIFI_INFO       "AT+CWJAP=\"ONENET\",\"IOT@Chinamobile123\"\r\n"

ONENET是WIFI名称、IOT@Chinamobile123是WiFi密码,配置成自己家的WIFI

#define ESP8266_ONENET_INFO     "AT+CIPSTART=\"TCP\",\"183.230.40.39\",6002\r\n"

 183.230.40.39改成自己服务器的IP

6002改成自己服务器的端口

我使用的是emqx的公用服务器,改成#define ESP8266_ONENET_INFO     "AT+CIPSTART=\"TCP\",\"broker.emqx.io\",1883\r\n"

成功

最终打印出信息

PROID: 77247, AUIF: test, DEVID:5616839

Tips: 连接成功

Subscribe Topic: stmSmartDesktopScreen/cmd

Tips: MQTT Subscribe OK

topic: /mylocator/sub, topic_len: 14, payload: {"lock_SW":1}

, payload_len: 14

topic: /mylocator/sub, topic_len: 14, payload: {"lock_SW":1}

, payload_len: 14

topic: /mylocator/sub, topic_len: 14, payload: {"lock_SW":1}

, payload_len: 14

topic: /mylocator/sub, topic_len: 14, payload: {"lock_SW":1

最后,请大家一定注意供电,注意供电,注意供电,我就是被供电害惨了!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1546022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker安装redis 6.2.7 并 远程连接

阿里云ecs服务器,docker安装redis 6.2.7 并 远程连接 文章目录 阿里云ecs服务器,docker安装redis 6.2.7 并 远程连接1. 拉取redis镜像2. 查看是否下载成功3. 挂载配置文件4. 下载reids配置文件(redis.conf)5. docker创建redis容器6. 查看redis容器运行状…

JL-34 超声波气象站 可集成多要素 集成度高、颜值高、免安装、免布线

产品概述 超声波气象站是我公司结合多年气象产品开发经验,根据现场实际情况开发的一款多功能自动气象站。该产品集温度、湿度、气压、风速、风向、雨量、大气压力、颗粒物和噪声等要素为一体,该系列产品集成度高、颜值高、免安装、免布线。 功能特点 …

038—pandas 重采样线性插补

前言 在数据处理时,由于采集数据量有限,或者采集数据粒度过小,经常需要对数据重采样。在本例中,我们将实现一个类型超分辨率的操作。 思路: 首先将原始数据长度扩展为 3 倍,可以使用 loc[] 方法对索引扩…

54、Qt/对话框、事件机制相关学习20240325

一、完善对话框,点击登录按钮,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&#…

android h5理财(记账)管理系统eclipse开发mysql数据库编程服务端java计算机程序设计

一、源码特点 android h5理财管理系统是一套完善的WEBandroid设计系统,对理解JSP java,安卓app编程开发语言有帮助(系统采用web服务端APP端 综合模式进行设计开发),系统具有完整的源代码和数据库,系统主要…

TCP与UDP:传输层协议对比

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

VMware中添加使用ubuntu

提示:本文为学习记录,若有错误,请联系作者,谦虚受教。 文章目录 前言一、ubuntu安装二、下载vmwareTool三、解压文件四、解决联网失败五、linux常用命令总结 前言 打破舒适圈 一、ubuntu安装 Vmware安装流程 二、下载vmwareToo…

编程语言|C语言——C语言实现玫瑰花(情人节)

1.说明 在古希腊神话中,玫瑰花集爱与美于一身,既是美神的化身,又溶进了爱神的血液,所以它所代表的含义是爱情。 我们应该用玫瑰花来表达我们的爱意,但是好多的恋人都是因为异地而没有办法去买一束新鲜的玫瑰去送给自己…

Fast-Planner(三)详解后端B-Spline曲线优化

本文上接Fast-Planner的B-spline曲线生成详解,介绍B-spline曲线优化。如有问题,欢迎各位大佬评论指出,带着我一起进步。 三、B样条优化 初始化获得的B样条曲线只是达到了可达性检测,本章介绍为得到更加光滑安全的轨迹&#xff0…

训练自己的分类数据集

文章目录 1.数据集准备2. 数据集划分3.设计模型进行训练1. 随便乱写的网络2. 借鉴优秀的网络模型(MobileNetV3) 分析:练习: 1.数据集准备 准备你要进行分类的数据集,可以自己拍摄,可以网上进行爬取。 将不…

pdf压缩文件怎么压缩最小?一键压缩PDF

pdf文件压缩是为了减小文件大小,以便更轻松地共享、传输和存储文件,通过压缩pdf文件,可以减少文件占用的存储空间,加快文件的上传和下载速度,并节省带宽和存储成本;在本教程中,我们将介绍一些有效的方法来最…

人工智能三剑客NumPy、pandas、matplotlib和Jupyter四者之间的关系

NumPy 主要用途:NumPy(Numerical Python的缩写)主要用于处理大型多维数组和矩阵的科学计算。它提供了一个高性能的多维数组对象,以及用于数组操作的工具。与其他三者的联系:NumPy是pandas和matplotlib的基础库之一。许…

10.IO流(一)

文章目录 IO流一、File1.创建对象1.1 创建File类的对象1.2 注意1.3 绝对路径、相对路径 2.常用方法1:判断文件类型、获取文件信息3.常用方法2:创建文件、删除文件3.1 File类创建文件的功能3.2 File类删除文件的功能 4.常用方法3:遍历文件夹4.1 File类提供的遍历文件夹的功能4.2…

【JAVA】数据类型与变量(主要学习与c语言不同之处)

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青-CSDN博客 目标: 1. 字面常量 2. 数据类型 3. 变量 1.字面常量 在上节课 Hello…

paramiko,一个强大的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个强大的 Python 库 - paramiko。 Github地址:https://github.com/paramiko/paramiko 在网络编程中,远程操作是一项非常常见的需求,特别是…

QT 界面2.1

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {this->setWindowIcon(QIcon(":/Logo/1bc87d9b4c1ea878d5e0845257a06f7f (1).jpg")); // 图标this->setWindowTitle(&…

环境变量与进程详解

文章目录 1.进程的优先级1.1 查看优先级1.2 调制优先级 2.环境变量2.1 命令行参数2.2 环境变量 3.程序的地址空间3.1 为什么要有地址空间?3.2 linux的大O(1)调度算法 4.进程创建5.进程中止5.1 进程的退出码(错误码)5.2 进程终止的最优写法&am…

苍穹外卖Day07——总结7

前期文章 文章标题地址苍穹外卖Day01——总结1https://lushimeng.blog.csdn.net/article/details/135466359苍穹外卖Day02——总结2https://lushimeng.blog.csdn.net/article/details/135484126苍穹外卖Day03——总结3https://blog.csdn.net/qq_43751200/article/details/1363…

Data.olllo解密:秒数转换为日期格式的神奇技能!

引言: 时间是数据世界中不可或缺的一环,而将秒数转换为易读的日期格式往往是数据处理中的一大挑战。但是,有了Data.olllo,这一任务将变得异常简单! 功能介绍: Data.olllo的秒数转换功能可以让您轻松地将秒…

花钱买不到系列-linux信号[2]卷

上一篇信号,我们知道了,进程需要保存信号,信号究竟是什么?什么又叫做发送信号呢?什么又叫做进程保存信号呢?那么,实际上呢?给大家一个基本的思考切入点,就是我们常见的信…