STM32+Cubemx+Esp8266(二)ESP8266连接wifi

一、Esp8266固件准备

固件这里就花了不少时间,因为我之前是在腾讯云有账号的,就想着用乐鑫的腾讯专用固件,但没想到还遇到了不少坑。

首先就是下载的固件,官网上有两个版本,区别是AT指令用的串口号不一样,因为时间比较久,我现在也忘记了用哪个。。。一起保存了。其次就是下载工具,一开始用的版本不对,一直烧录不进去,后来用的flash_download_tool_v3.8.5版本,又是搜了很久的设置,才成功烧录,过程很曲折,好在最后还是用上了腾讯的AT固件。这里工具和固件在官网都能找到,百度一下就可以了,文章底下也有我上传的链接。

二、调试串口的准备

我是想换一个地方能够不用修改程序就能连接wifi,还有用监控之类的上位机去监控数据。记录的同时我自己也会想着更改之前程序的不足,这个测试例程我还加了FreeRtos进去,也不用照搬我之前裸机的框架,而且很多地方我也是尽量往好的框架去考虑。

1、串口接收数据处理

这里处理与上一章ESP8266做的处理一样,都是用了一个定时器做不定长的接收。

定时器中断触发之后,这里我直接用信号量切换到对应的任务,没有像之前裸机那样用一个标志位来告知任务串口获取到数据。

2、调试串口的任务处理

而调试串口的任务,我这里只是简单做了一个接收的信号量处理,就是把在串口输入的wifi名称和密码分割,然后替换到程序响应变量。这里替换完应该再重新有一个输出,告知是否输入成功,当时没做。

3、调试串口的输出信息处理

在串口输出信息,这里也只做了一个简单的输出函数

三、Esp8266连接Wifi

1、任务的处理

发送我是利用了xTaskNotifyWait等待信号量,如果接收到发送的信号量,就调用发送函数,如果等待信号量超时(2S),就进入发送函数。等待到接收数据的信号量,就进入数据处理函数

2、Esp8266的发送

我沿用以前的程序,做了一个Esp8266的结构体,里边还有一些没有用到,我是直接复制过来的。

以下就是我的发送处理函数,大致的思路就是,每次指令CloudFaultTime都会++,成功后置0,次数大于32次,就重新复位,进入初始化,这里CloudFaultTime一开始我的初始值是32,所以一开始就会进入初始化。

ESP8266链接wifi的指令过程就是 CIPSTATUS →CWMODE →CIPMUX→CWJAP

这个过程没什么好说的,都是很简单的发送指令和校验回帧

3、Esp8266的接收

这里我查询CPISTATUS的时候,如果能连接上网络,就不需要再输入wifi的名称和密码了。

如果链接不上,就会在串口输出需要输入wifi名称和密码

后边的就是一些常规的处理,也没什么好说的。

四、程序测试

然后下边就是测试过程,这个过程,因为我是抓了Esp8266的回帧在左边看,所以单看右边的话,会有点不连贯的感觉。我应该在输入后调试串口增加输入成功,并且打印出输入的wifi名称和密码,在链接过程中也在调试过程中增加wifi连接中这样的信息。

最后附上链接

【免费】ESP8266相关的一些东东资源-CSDN文库

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Try1harder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值