# 前言
参考资料:
STM32F1开发指南(精英版)-库函数版本_V1.2.pdf
ATK-ESP8266 WIFI用户手册_V1.2.pdf
ATK_ESP8266V1.2.pdf
ATK-ESP8266 WIFI模块使用说明(战舰V3&精英版)_AN1509A.pdf
源码参考:正点原子 (库函数版本,适合战舰V3和精英STM32开发板)扩展实验13 ATK-ESP8266 WIFI模块测试实验) 这个例程功能比较全,也很强大,我对这个例程进行了精简和删改,LCD显示也注释了。
开发板:正点原子 STM32F103 精英版
语言:C语言
开发环境:Keil5
手机:准备的软件是 网络调试助手 或 网络测试
开发板使用了 LED KEY TFTLCD USART SPI ESP8266模块
更多参考底部
复位1秒后,进入ap_demo()
函数,默认配置为AP模式,TCP 服务端,端口为8086。KEY0按下发送测试数据,KEY_UP按下结束测试。期间会有串口打印,最好复位后就把串口打开看信息。
main.c中可以设置网络模式和IP地址。
u8 netpro = 0; //网络模式 0,TCP服务器 1,TCP客户端 2,UDP模式
u8 ipbuf[16] = "192.168.4.2"; //IP (根据你的设备连上模块后分配到的IP填写)
common.c中可以设置 端口 wifi信息等
//连接端口号:8086,可自行修改为其他端口.
const u8* portnum="8086";
//WIFI STA模式,设置要去连接的路由器无线参数,请根据你自己的路由器设置,自行修改.
const u8* wifista_ssid="wifi_name"; //路由器SSID号
const u8* wifista_encryption="wpawpa2_aes"; //wpa/wpa2 aes加密方式
const u8* wifista_password="password"; //连接密码
//WIFI AP模式,模块对外的无线参数,可自行修改.
const u8* wifiap_ssid="ATK-ESP8266"; //对外SSID号
const u8* wifiap_encryption="wpawpa2_aes"; //wpa/wpa2 aes加密方式
const u8* wifiap_password="12345678"; //连接密码
AP STA STA+AP 模式下,建立tcp/udp连接后,发送指定命令,控制LED1和蜂鸣器的开关。
命令如下:(每行都是一条命令,不要有换行等)具体实现在common.c
中
LED1 ON
LED1 OFF
BEEP ON
BEEP OFF
GET T&H
参考文章:STM32F103+ESP8266(WiFi)模块 简单应用之远程控制LED和蜂鸣器、读取温湿度
VCC -》 5V
GND -》 GND
TXD -》 PB11
RXD -》 PB10
RST -》 PA4
IO_0 -》 PA15
u8 netpro = 0; //main.c ap_demo() 网络模式 0,TCP服务器 1,TCP客户端 2,UDP模式
烧写完后,复位,打开串口调试工具。
可以从上图中看到,wifi的具体信息
IP地址:192.168.4.1 端口:8086
请用设备连接WIFI热点:SSID:ATK-ESP8266
加密方式:wpawpa2_aes
密码:12345678
状态:TCP服务器
根据上面的信息连接wifi(ATK-ESP8266),连接成功后查看详细信息
打开软件,选择顶部“tcp client”,点击“增加”,输入上面的IP地址和端口,进行“增加”
提示“连接成功”,并且左上角出现 小块显示增加的连接
此时串口收到连接信息,连接成功
手机编辑文本“123321”,点击发送,STM32按下KEY0发送测试数据,顶部收到数据。最后长按连接块,“断开”连接。
串口打印如下
打开手机软件“网络测试”,选择TCP
右上角 “创建连接”,填入上面串口打印的IP:端口 ,点击“确定”
右上角显示“已连接”就是连上了,然后我们发送“好家伙”,再STM32按KEY0(发送测试数据)
最后按右上角“已连接”,断开连接
串口助手收到的数据如下
u8 netpro = 1; //main.c ap_demo() 网络模式 0,TCP服务器 1,TCP客户端 2,UDP模式
u8 ipbuf[16] = "192.168.4.2"; //IP (根据你的设备连上模块后分配到的IP填写)
手机创建TCP 服务端 监听8086端口,等待客户端主动连接
注意下时间线0.0
u8 netpro = 2; //main.c ap_demo() 网络模式 0,TCP服务器 1,TCP客户端 2,UDP模式
u8 ipbuf[16] = "192.168.4.2"; //IP (根据你的设备连上模块后分配到的IP填写)
手机创建UDP server,监听8086端口
按下KEY0,主动发送数据
手机连接建立,点击进入
准备2个手机,或者能产生wifi信号的设备。
一个手机开启手机热点,设置wifi信息
另一个手机连接热点,查看详细信息,分配到的ip是 192.168.43.39
修改main.c
,调用 atk_8266_test();
atk_8266_test(); //进入ATK_ESP8266测试
// ap_demo();
修改common.c
,填写新的STA模式的wifi信息
//连接端口号:8086,可自行修改为其他端口.
const u8* portnum="8086";
//WIFI STA模式,设置要去连接的路由器无线参数,请根据你自己的路由器设置,自行修改.
const u8* wifista_ssid="ikaros"; //路由器SSID号
const u8* wifista_encryption="wpawpa2_aes"; //wpa/wpa2 aes加密方式
const u8* wifista_password="12345678"; //连接密码
//WIFI AP模式,模块对外的无线参数,可自行修改.
const u8* wifiap_ssid="ATK-ESP8266"; //对外SSID号
const u8* wifiap_encryption="wpawpa2_aes"; //wpa/wpa2 aes加密方式
const u8* wifiap_password="12345678"; //连接密码
修改 wifista.c
的 atk_8266_wifista_test(void)
,IP改成另一个手机的IP(这里给客户端模式用的,暂时没用)
u8 ipbuf[16] = "192.168.43.39"; // IP缓存
程序重编,烧写,打开串口,看到提示按键
这里就用到上面说的ip了
修改 wifista.c
的 atk_8266_wifista_test(void)
,IP改成另一个手机的IP(这里给客户端模式用的,暂时没用)
u8 ipbuf[16] = "192.168.43.39"; // IP缓存
不重复赘述,直接上结果
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。