<h2><span style="color:#3399ea;">工程源码下载:</span> <a href="https://download.csdn.net/download/xiaolong1126626497/15805037">https://download.csdn.net/download/xiaolong1126626497/15805037</a></h2>
<h2><span style="color:#f33b45;">一、硬件环境介绍</span></h2>
<p><span style="color:#3399ea;"><strong>1. ESP8266 :</strong></span>采用安信可的模组,型号是ESP12F</p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-d339b1b658a19e26cc249f6c22a86fd0.png"></p>
<p><span style="color:#3399ea;"><strong>2. STM32 :</strong></span> 采用STM32F103C8T6</p>
<p><span style="color:#3399ea;"><strong>3. 编程软件 : </strong></span> 采用Keil5</p>
<p><span style="color:#f33b45;"><strong>ESP8266编程调试过程中用到的相关软件下载地址:</strong></span></p>
<p>物联网网调试终端:<a href="https://download.csdn.net/download/xiaolong1126626497/12624530">https://download.csdn.net/download/xiaolong1126626497/12624530</a></p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-97495fefa0eb51d939db5583b74435ea.png"></p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-fca23c507e3213b879c311b059c2b470.png"></p>
<p>TCP调试助手:<a href="https://download.csdn.net/download/xiaolong1126626497/12624461">https://download.csdn.net/download/xiaolong1126626497/12624461</a></p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8c6541efb443c48990a31461e96454be.png"></p>
<p>串口调试助手:<a href="https://download.csdn.net/download/xiaolong1126626497/12624450">https://download.csdn.net/download/xiaolong1126626497/12624450</a></p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4f8ed68f934e48a80afb6bfeac318ff0.png"></p>
<h3><span style="color:#f33b45;">二、ESP8266通信的调试与运行效果</span></h3>
<p>下面几张图是将ESP8266配置成AP+TCP服务器模式,电脑连接ESP8266的热点之后,实现数据通信。通信的效果是,在电脑点击物联网控制系统软件,实现控制开发板上的LED灯和蜂鸣器,开发板上将检测的光敏数据、温度数据、RC522刷卡数据传输到电脑的软件上进行显示。----局域网通信</p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-a5403ec4c5f0a77663c6499301670d5a.jpg"></p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-375fef11046d632e212366fb5655454b.jpg"></p>
<p> <img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-54942c847a006e2566e45c2db8caa178.png"></p>
<h2><span style="color:#f33b45;">三、硬件接线与代码技术部分介绍</span></h2>
<p><span style="color:#3399ea;"><strong>硬件连接:</strong></span> 下面会贴出核心代码,在当前开发板上,ESP8266接在STM32F103C8T6的串口3上。</p>
<p><span style="color:#3399ea;"><strong>代码分为以下几个部分: </strong></span></p>
<p>(1) STM32程序里的串口接收采用定时器+接收中断的形式接收数据,使用这种方式可以接收不定长度数据,方便接下来与ESP8266进行通信。</p>
<p>(2). ESP8266驱动代码:代码实现了STA+TCP客户端的一键配置函数,AP+TCP服务器的一键配置函数,要配置ESP8266只需要调用对应的函数传入参数即可。</p>
<h2><span style="color:#f33b45;">四、核心代码部分</span></h2>
<h3><span style="color:#3399ea;">4.1 ESP8266.c代码</span></h3>
<pre class="blockcode"><code class="language-cpp">#include "esp8266.h"
u8 ESP8266_IP_ADDR[16]; //255.255.255.255
u8 ESP8266_MAC_ADDR[18]; //硬件地址
/*
函数功能: ESP8266命令发送函数
函数返回值:0表示成功 1表示失败
*/
u8 ESP8266_SendCmd(char *cmd)
{
u8 i,j;
for(i=0;i<10;i++) //检测的次数--发送指令的次数
{
USARTx_StringSend(USART3,cmd);
for(j=0;j<100;j++) //等待的时间
{
delay_ms(50);
if(USART3_RX_FLAG)
{
USART3_RX_BUFFER[USART3_RX_CNT]='\0';
USART3_RX_FLAG=0;
USART3_RX_CNT=0;
if(strstr((char*)USART3_RX_BUFFER,"OK"))
{
return 0;
}
}
}
}
return 1;
}
/*
函数功能: ESP8266硬件初始化检测函数
函数返回值:0表示成功 1表示失败
*/
u8 ESP8266_Init(void)
{
//退出透传模式
USARTx_StringSend(USART3,"+++");
delay_ms(50);
return ESP8266_SendCmd("AT\r\n");
}
/*
函数功能: 一键配置WIFI为AP+TCP服务器模式
函数参数:
char *ssid 创建的热点名称
char *pass 创建的热点密码 (最少8位)
u16 port 创建的服务器端口号
函数返回值: 0表示成功 其他值表示对应错误值
*/
u8 ESP8266_AP_TCP_Server_Mode(char *ssid,char *pass,u16 port)
{
char *p;
u8 i;
char ESP8266_SendCMD[100]; //组合发送过程中的命令
/*1. 测试硬件*/
if(ESP8266_SendCmd("AT\r\n"))return 1;
/*2. 关闭回显*/
if(ESP8266_Se |
|