ESP8266与STM32

这篇具有很好参考价值的文章主要介绍了ESP8266与STM32。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ESP8266与STM32通信

最近想实现esp8266-01s系列和stm32f103c8t6之间进行串口通信,然后在网上看了好多这方面的资料最终都以失败告终。不断尝试下还是实现该功能,同时非常感谢这位博主。
博主链接

实现的最终功能是能够通过手机连上ESP8266作为服务端模式下的wifi,让后在手机上发送相关的指令,esp8266接收后再通过串口发送给单片机 ,间接的来控制我们的外设。

esp8266常用指令介绍
具体的用法可以查看相关的esp8266的手册
下面就只介绍一下配置三种不同模式常用的几个指令

stm32 esp8266,SMT32,esp8266,stm32f103c8t6,串口通信stm32 esp8266,SMT32,esp8266,stm32f103c8t6,串口通信stm32 esp8266,SMT32,esp8266,stm32f103c8t6,串口通信

模式一:STA模式

 //通俗的来讲 该模式就是将esp8266作为客户端 来连接服务端(可以通过我们手机开热点)
 1. AT+CWMODE=1                    设置模组为STA模式。(串口助手)
 2. AT+CWLAP                 	   查询附近 WIFI(串口助手)
 3. AT+CWJAP="nova5Pro","yin12345"   连接 WIFI(串口助手)
 4. AT+CIFSR                       查看路由器分配给模组的IP地址,例如 192.168.43.20(串口助手)
 5. AT+CIPMUX=1                    打开多连接(串口助手)
 6. AT+CIPSERVER=1,8080         设置模块服务器端口(串口助手).
 7. 打开网络调试助手进行设置:请打开电脑去连接路由器的WIFI热点。并且打开网络调试助手,在网络调试助手上输入连接模块的 IP和设置的端口。
 8. AT+CIPSEND=0,11                进入数据发送模式为11个字节

在电脑终端查看当前Ip ipconfig

stm32 esp8266,SMT32,esp8266,stm32f103c8t6,串口通信记住该Ip在我们配置的时候会使用到 让后通过网络串口助手打开服务端 在使用另外一个串口助手打开就可以观察到我们客户端的启动情况 和 二者之间的数据收发 在esp8266.c中 打开我最开始注释的就可以了
stm32 esp8266,SMT32,esp8266,stm32f103c8t6,串口通信

模式二:AP 模式

//AP模式就是让我们的8266模块作为热点 让我们来连接 实现局域网的无线控制
 1.  AT+CWMODE=2                              开启 AP 模式(串口助手)
 2.  AT+CWSAP="ESP8266","12345678",11,0     设置模块的 wifi 和密码(串口助手)
 3.  AT+CIPSERVER=1,8080                     设置模块服务器端口(串口助手),
 4.  打开电脑或者手机上的TCP助手去连接模块建立的AP热点
 5.  打开网络调试助手,输入连接模块的 ip 和设置的端口。
 6. AT+CIFSR       查看当下的ip 
 7.  AT+CIPSEND=0,11                          进入数据发送模式为11个字节(串口助手)

下面串口打印出来的信息就可以观察到我们的配置已经成功了
并且可以看到esp8266作为服务端下的IP,我们通过手机或者网络串口助手连接 
输入该IP和我们配置的端口号就可以了
注意:

stm32 esp8266,SMT32,esp8266,stm32f103c8t6,串口通信

通信连接

stm32 esp8266,SMT32,esp8266,stm32f103c8t6,串口通信上面就实现了简单的通信

模式三:STA+AP 模式

该模式就是上面两种模式的共存模式,一般没有用到 就不做具体介绍了感兴趣的同学可以自己去试试。

最后在讲一下透传模式

透传模式简单的来说就是实现我们发送的数据,发送什么另一端就接收什么,可以一直发送。
如果不开启透传模式,发送数据前都必须先发送指令AT+CIPSEND=num,
例如T+CIPSEND=4  //发送的数据长度不能大于4 要不然在次发送的时候句处于忙的状态。

AT+CIPMODE=<1> :进入透传模式
AT+CIPSEND :之后发送的所有内容将全部当成数据
注意:透传只能在单连接模式下进行,所以在建立连接之前一定要用(AT+CIPMUX=0 设置单连接)
退出透传模式: 发送数据"+++"就可以了。注意:此时“+++”后面,不接“发送新行”!

c 主程序

/***************************************************/
//该程序还是借鉴前面提到的博主,后面会根据自己功能的需求进行相应的修改

#include "stm32f10x.h"
#include "bsp_usart.h"
#include "delay.h"
#include "led.h"
#include "usart3.h"
#include "string.h"
#include "esp8266.h"
/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
int main(void)
{	
  USART_Config();
	delay_init();
	LED_Init();
	
	usart3_init(115200);

	esp8266_start_trans();	
	
	printf("初始化完成Start Test\n");
	
	USART3_RX_STA=0;
  while(1)
	{	

    if(USART3_RX_STA&0x8000)    //如果消息接收完成,则处理
		{
			if(strstr((const char*)USART3_RX_BUF,"on"))  //这里是看接收到的消息中有没有自己设置的命令“on”,strstr()函数不会用的可以搜一下
				{
					GPIO_ResetBits(GPIOC,GPIO_Pin_13);
				}
			if(strstr((const char*)USART3_RX_BUF,"off")) 
			{
				GPIO_SetBits(GPIOC,GPIO_Pin_13);
			}
			USART3_RX_STA=0;   //消息处理完成,开始重新接收
			memset(USART3_RX_BUF,0,600);         //将接收区清0
		}

	}	
}
/*********************************************END OF FILE**********************/

源码链接 链接:https://pan.baidu.com/s/1YwXKHYdV_wxlAYa7eDA7vQ 提取码:avug --来自百度网盘超级会员V4的分享文章来源地址https://www.toymoban.com/news/detail-622698.html

到了这里,关于ESP8266与STM32的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Openmv+STM32F103C8T6视觉巡线小车

    机器视觉巡线处理是参考openmv官方代码 Openmv官网源代码:book. openmv.cc/project/follow-lines.html 根据官网视频及教程将源码注入openmv中。 小车巡的是黑线,所以颜色阈值要更改。 在文件示例中打开helloworld.py。 打开工具/机器视觉/阈值编辑器/缓冲区。 将我们需要寻迹的黑线调至全

    2023年04月09日
    浏览(59)
  • SG90舵机的使用--STM32F103C8T6

    SG90带有一个3P的接头 根据颜色分为 黄线(信号线) 红线(电源线) 棕色 (地线) 舵机的 工作电压 在 4.8V-6V ,接在STM32系统板上驱动不了,所以需要接电源模块单独的5V供电,我使用的是如图所示的电源模块 注: 如果STM32系统板供电和舵机供电不为同一模块,则需要共地,

    2024年02月03日
    浏览(47)
  • STM32---stm32f103c8t6与stm32f103zet6之间的代码移植转换

    目录 一、将c8t6转换为zet6 1、修改启动文件 2、修改芯片 3、将MD修改为HD  4、下载器的修改 5、修改完成,编译成功  二、将zet6转换为c8t6 最终结果如下:   将STM32F103C8改为STM32F103ZE   基本相同,反向即可。    

    2024年02月06日
    浏览(63)
  • 手把手带你使用ESP8266 与 STM32F103C8实现网络服务器

    随着现在物联网设备的而越来越多,现在市场上出现越来越多的物联网设备,其中 ESP8266 是最受欢迎、价格便宜且易于使用的模块,它可以将您的硬件连接到互联网。 今天我们就以ESP8266和STM32来实现一台网络服务器,我们使用 ESP8266 将 STM32F103C8 连接到互联网。 ESP8266 Wi-Fi 模

    2024年01月23日
    浏览(129)
  • [附源码] STM32F103C8T6+外接MCP4725 外部DAC

            STM32F103C8T6最小系统板是大家很常用的一款单片机,它内部有多个ADC模数转换通道,但并 没有DAC数模转换功能 ,当需要进行数字量转换为模拟量时就需要借助外部DAC。             MCP4725是具有非易失性存储器的单通道12位缓冲电压输出DAC。用户可将配置寄存器

    2024年02月04日
    浏览(50)
  • JQ8400语音模块-stm32f103c8t6(内含全代码)-亲测有效

    一.模块介绍 1.常见的JQ8400-FL语音模块有两种,一种是带3W功放,有4M的存储空间,可通过USB拷贝声音文件,通过单片机串口控制;另外一种是附有SD卡槽,用SD卡存储文件的文件(MP3格式)进行语音播报,也是通过单片机串口控制 2.我用的是二线串口通信,一线的没试过 3.程序

    2023年04月26日
    浏览(47)
  • MQ2烟雾传感器 - STM32F103C8T6-HAL库

    ADC.c 文件 ADC.h文件 main函数中的调用

    2024年04月26日
    浏览(43)
  • 【沧海拾昧】STM32F103C8T6/C6T6的ISP烧录

    #C0105 沧海茫茫千钟粟,且拾吾昧一微尘 ——《沧海拾昧集》@CuPhoenix 【阅前敬告】 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 【如有问题必是本集记录有谬,切勿深究】   对于某种STM32F103C8T6/C6T6最小系统板,没有配置J-LINK/ST-LINK烧录口,此时可以

    2024年02月03日
    浏览(73)
  • STM32单片机PWM控制实现电机调速度(小车运动,STM32F103C8T6&TB6612&TT电机)

    作者:公子易平 时间:2023/6/6 前段时间做一个智能小车的相关项目时,发现很少有人能够将STM32的PWM控制讲清楚,故而书此文,希望对后来的学习者有所帮助。 STM32F103C8T6最小系统板 直流TT电机 电机驱动芯片(TB6612) 杜邦线若干 接线情况: TB6612引脚说明: STM32主控芯片与TB6612接

    2024年02月15日
    浏览(48)
  • STM32F103C8T6---定时器1&定时器8输出PWM信号注意事项

    博主今天在驱动定时器1的通道1输出PWM信号的时候,遇到了好多问题,在这里指出,警醒自己的同时希望能给各位带来帮助 首先,第一个错误, 第一:PA8引脚默认模式就是定时器1的通道一,我们在代码里面,直接 将PA8的输出模式改为复用推挽输出,不要去重定向它,也不要

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包