uart+ES8266用法理解,附代码

本文介绍了如何使用UART接口结合ESP8266进行WiFi连接和数据传输。主要内容包括ESP8266的基础知识,通过AT命令进行连接设置的步骤,如设置模式、连接WIFI、配置TCP连接,并提供了相应的调试注意事项,如波特率和延时设置。适合嵌入式开发者参考。
摘要由CSDN通过智能技术生成

ESP8266作为一款轻量级的嵌入式WIFI芯片,因为其短小精悍被大家广泛应用,这里总结一下自己最近用这块芯片(确切的说,我只是拿来当WIFI模块用)的一些收获,如果有错误请不吝赐教,谢谢~

1. 基础知识

刚拿到这个模块时候,真的是不懂,因为没有了解过TCP/IP协议,所以对连接一头雾水,如果有其他小伙伴也是的话,不妨移步上一篇 《TCP/IP协议解读(1)—整体框架把握》,不想读的朋友也没问题,大致意思如下


在这里插入图片描述

而ESP8266这个模组,帮我们封装到网络层,即我们只需要知道我们知道WIFI用户名、WIFI密码、要传到哪个IP地址和哪个端口这四个信息,就可以将信息从ESP8266传到对应IP地址的对应程序中(一般调试的时候用网络调试助手)。

所以应该做的准备:

  • 硬件:ESP8266模组或者开发板,杜邦线,MCU开发板;
  • 软件:IDE,网络调试助手,串口调试助手;

2.连接步骤和AT命令:

我使用的是AT命令对ESP8266模组进行的操作,比较笨但是好用:AT指令是应用于终端设备与PC应用之间的连接与通信的指令,基本格式是:AT+cmd。

端口配置,采用STM32开发板;

static void                 		  ESP8266_GPIO_Config                 ( void );
static void                 		  ESP8266_USART_Config                ( void );
static void               			  ESP8266_USART_NVIC_Configuration    ( void );

void ESP8266_Init ( void )
{
   
	ESP8266_GPIO_Config (); 	           		//GPIO口初始化
	ESP8266_USART_Config (); 					//与WIFI模组通信的usart口初始化
	macESP8266_RST_HIGH_LEVEL();				//硬件复位
	macESP8266_CH_DISABLE();					//CH口失能,使能时传输才有效
}

static void ESP8266_GPIO_Config ( void )
{
   
	GPIO_InitTypeDef GPIO_InitStructure;
	macESP8266_CH_PD_APBxClock_FUN ( macESP8266_CH_PD_CLK, ENABLE ); 										   
	GPIO_InitStructure.GPIO_Pin = macESP8266_CH_PD_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
	GPIO_Init ( macESP8266_CH_PD_PORT, & GPIO_InitStructure );	 
	macESP8266_RST_APBxClock_FUN ( macESP8266_RST_CLK, ENABLE ); 
	GPIO_InitStructure.GPIO_Pin = macESP8266_RST_PIN;	
	GPIO_Init ( macESP8266_RST_PORT, & GPIO_InitStructure );	 
}

static void ESP8266_USART_Config ( void )
{
   
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	
	
	/* config USART clock */
	macESP8266_USART_APBxClock_FUN ( macESP8266_USART_CLK, ENABLE );
	macESP8266_USART_GPIO_APBxClock_FUN ( macESP8266_USART_GPIO_CLK, ENABLE );
	
	/* USART GPIO config */
	/* Configure USART Tx as alternate function push-pull */
	GPIO_InitStructure.GPIO_Pin =  macESP8266_USART_TX_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(macESP8266_USART_TX_PORT, &GPIO_InitStructure);  
  
	/* Configure USART Rx as input floating */
	GPIO_InitStructure.GPIO_Pin = macESP8266_USART_RX_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_Init(macESP8266_USART_RX_PORT, &GPIO_InitStructure);
	
	/* USART1 mode config */
	USART_InitStructure.USART_BaudRate = macESP8266_USART_BAUD_RATE;
	USART_InitStructure.USART_WordLength 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值