【stm32】wifi ESP8266的透传 实验二(HAL库开发)

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

一、

总算完成了透传,感觉没几行代码,就是在昨天的基础上,对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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值