一、
总算完成了透传,感觉没几行代码,就是在昨天的基础上,对ESP8266的AT指令进行了封装,什么选择工作模式(STA 还是 AP),查询附近WIFI热点,连接WIFi,见解服务器的IP和端口,开启透传......
我的代码的缺点:1.有点简单粗暴,逻辑程序,接收到串口的数据这类的操作没有一部处理,直接把串口1接收到的(电脑上位机再串口工具上发送的数据)同步转给串口3(ESP8266),没有用一个全局数组将数据保存下,之后改进吧。
缺点2:发送指令的函数接口中,直接用HAL_Delay() 延时去做的,我想这样的坏处就是...简陋,这里同样应该改成异步的,并且应该知道每个命令的结果是什么,如果某中间的AT指令执行不成功,应该不往下执行或者重启之类的,嗯 后续改进。
二、代码
esp8266.h
#ifndef ESP8266_H
#define ESP8266_H
#include "stm32f1xx.h"
#include <stdio.h>
/*******************************************STA模式下*******************************/
//选择要连接的热点名称和密码
#define ESP8266_JOIN_AP_NAME "HonorNote10"
#define ESP8266_JOIN_AP_PASSWORD "zdw123456"
//选择要连接的服务器和IP 端口
#define ESP8266_CONNECT_TCPSERVER_IP "192.168.43.13"
#define ESP8266_CONNECT_TCPSERVER_PORT "8000"
/*******************************************STA模式下*******************************/
/*******************************************AP模式下*******************************/
//创建wifi热点:名称 密码 加密方式
#define ESP8266_BUILD_AP_NAME "ZDW_STM32F103"
#define ESP8266_BUILD_AP_PASSWORD "zdw123456"
#define ESP8266_BUILD_AP_FUNCTION OPEN
//wifi热点的IP 端口
#define ESP8266_TcpServer_IP "192.168.1.1"
#define ESP8266_TcpServer_Port "8080"
#define ESP8266_TcpServer_OverTime "1800" //秒
/*******************************************AP模式下*******************************/
/*
ESP8266 IO <------> STM32 IO
URXD PB10(tx)
UTXD PB11 (rx)
CH-PD PB8
RST PB9
*/
/******* ESP8266 pins *************/
//8266 CH_PD引脚
#define ESP8266_CH_PD_PORT GPIOB
#define ESP8266_CH_PD_PIN GPIO_PIN_8
#define ESP8266_CH_PD_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
//8266 RST引脚
#define ESP8266_RST_PORT GPIOB
#define ESP8266_RST_PIN GPIO_PIN_9
#define ESP8266_RST_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define ESP8266_CH_PD_ENABLE() HAL_GPIO_WritePin(ESP8266_CH_PD_PORT,ESP8266_CH_PD_PIN,GPIO_PIN_SET)
#define ESP8266_RST_ENABLE() HAL_GPIO_WritePin(ESP8266_RST_PORT,ESP8266_RST_PIN,GPIO_PIN_SET)
extern UART_HandleTypeDef WifiUartHandle;
//工作模式
typedef enum
{
AP,
STA,
STA_AP
}Net_ModeTypeDef;
//wifi创建热点 加密方式
typedef enum
{
OPEN = 0,
WEP = 1,
WPA_PSK = 2,
WPA2_PSK = 3,
WPA_WPA2_PSK = 4,
}ENUM_AP_PsdMode_TypeDef;
//网络协议
typedef enum{
enumTCP,
enum

本文详细介绍了如何使用STM32和ESP8266实现透传功能,包括代码实现和测试过程。透传使得STM32能够通过ESP8266与远程服务器进行数据交换,适用于物联网应用。
最低0.47元/天 解锁文章
7284

被折叠的 条评论
为什么被折叠?



