初步实现项目
项目程序流程图:
![](https://img-blog.csdnimg.cn/7312c9353c9845528a80993bce7f8623.png)
TCP连接流程
模式1:站点模式
![](https://img-blog.csdnimg.cn/7e751bd1207d488fba48918446789de2.png)
写代码去实现了这个TCP的连接流程。
我们的思路就是
首先直接操作ESP8266,进行功能验证
![](https://img-blog.csdnimg.cn/459620dddb99470499d7ce24bd834fef.png)
ST-Link Debugger,点击Settings
![](https://img-blog.csdnimg.cn/32e2a895ca1a461c8beba7deea76ce2b.png)
勾选Reset and Run
![](https://img-blog.csdnimg.cn/4db02a2b69664a2cab3f1b59cbd87150.png)
在Pack取消Enable
![](https://img-blog.csdnimg.cn/3a0f00da08764bd4abdcd4ac750cd4b4.png)
然后可以调试啦。
串口2发送AT指令
不同指令执行所需时间不同。
比如连接WIFI时间比较慢。
![](https://img-blog.csdnimg.cn/07d6595242494b22bba00b800bac138e.png)
指令发送成功返回0
向ESP8266发送TCP数据 函数
![](https://img-blog.csdnimg.cn/b044eee39d0445c7b25170dd26381559.png)
引号内的\转义
改进项目程序
定义变量最好直接赋初值。
![](https://img-blog.csdnimg.cn/39f431fc59384f719c7224f38b860bb0.png)
截取返回的部分数据(IP)
![](https://img-blog.csdnimg.cn/b74a295b0cf740ecabd529bd2d152437.png)
Strstr()
在字符串1中查找字符串2出现的位置
成功返回字符串1第一次出现 字符串2 的地址
失败返回NULL。在C语言中,NULL和0的值是一样的
更新WIFI账号密码
新增函数实现支持代码中的默认账号密码,也支持输入账号密码。使用按键区分是否需要手动输入,开机检测,如果没有按键,就使用默认;有按键,通过串口输入新的账号密码。
需要开机后延时等待几秒,打印提示,getchar获取用户输入,保存到char ch。while直到遇到换行符结束getchar
在ASCII表中,大于空格的基本是常规字符。
printf打印回显效果
Ssid_buf[ ] = ch; //保存收到的字符,初始值是默认的WIFI账号
长度定位数组位置len++
有按键,先清空ssid_buf