K_A23_001 基于STM32等单片机AT指令驱动ESP-01/ESP-01S实现手机遥控点灯

2024-03-14 20:40

本文主要是介绍K_A23_001 基于STM32等单片机AT指令驱动ESP-01/ESP-01S实现手机遥控点灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

K_A23_001 基于STM32等单片机AT指令驱动ESP-01/ESP-01S实现手机遥控点灯

  • 所有资源导航
  • 一、资源说明
  • 二、基本参数
    • 引脚说明
  • 三、驱动说明
    • 对应程序:
  • 四、部分代码说明
    • 1、接线引脚定义
      • 1.1、STC89C52RC+ESP-01/ESP-01S模块
      • 1.2、STM32F103C8T6+ESP-01/ESP-01S模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

请添加图片描述

所有资源导航

其他资料目录 直戳跳转

一、资源说明

单片机型号测试条件模块名称代码功能
STC89C52RC晶振11.0592MESP-01/ESP-01S模块STC89C52RC驱动ESP-01/ESP-01S模块 实现手机遥控点灯
STM32F103C8T6(标准库)晶振8M/系统时钟72MESP-01/ESP-01S模块STM32F103C8T6驱动ESP-01/ESP-01S模块 实现手机遥控点灯

二、基本参数

引脚说明

ESP-01/ESP-01S模块引脚说明
VCC电源+ 3.3V
GNDGND 电源负极
IO2GPIO2/UART1_TXD
IO0GPIO0;下载模式:外部拉低;运行模式:悬空或者外部拉高
RXDUART0_RXD/GPIO3
TXDUART0_TXD/GPIO1
EN芯片使能端,高电平有效(ESP-01需要手动拉高)
RST复位

三、驱动说明

对应程序:

此处串口通信对应程序:
以51为例

#include "Uart.h"
#include "ESP-01S.h"
void UartInit(void)
{TMOD = 0x20;   //定时器工作在定时器1的方式2PCON = 0x00;   //不倍频SCON = 0x50;	//串口工作在方式1,并且启动串行接收	TH1 = 0xFD;    //设置波特率 9600TL1 = 0xFD;//ET1 = 0;TR1 = 1;		//启动定时器1ES = 1;		//开串口中断EA = 1;		//开总中断	
}void UartSend(uint8_t dat)
{
//    while (busy);
//    busy = 1;SBUF = dat;while(TI==0);	TI=0;
}/*****************发送设置**********************************/
void ESP8266_Set(unsigned char *puf)
{unsigned char k=0;while(*(puf+k)!='\0'){UartSend(*(puf+k));k++;}
}
/*************接收数据***************************************/
void UARTInterrupt(void)interrupt 4
{if(RI){RI=0;Usart_Receive[Usart_Cnt]=SBUF;Usart_Cnt++;if(!Usart_Connect_Buf_Flag){if(Usart_Receive[Usart_Cnt-2]=='\r'&&Usart_Receive[Usart_Cnt-1]=='\n'&&(strstr(Usart_Receive, "OK"))){Usart_Cnt=49;Usart_AT_flage=1;//ESP8266_Set(Usart_Receive);}else if(Usart_Cnt>=49){Usart_Cnt=49;}}else{if(Usart_Cnt>=49){Usart_Cnt=0;}}}if(TI){//TI=0;}
}

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+ESP-01/ESP-01S模块

//ESP-01/ESP-01S模块引脚定义UART:
(TX) ---------------P3.0
(RX)----------------P3.1//LED引脚定义
sbit LED=P1^0;

1.2、STM32F103C8T6+ESP-01/ESP-01S模块

//ESP-01/ESP-01S模块引脚定义
UART:
#define  DEBUG_USART2_TX_GPIO_PORT       GPIOA   
#define  DEBUG_USART2_TX_GPIO_PIN        GPIO_Pin_2
#define  DEBUG_USART2_RX_GPIO_PORT       GPIOA
#define  DEBUG_USART2_RX_GPIO_PIN        GPIO_Pin_3//LED引脚定义					
#define LED1_GPIO_PORT    	GPIOB			              /* GPIO端口 */
#define LED1_GPIO_CLK 	    RCC_APB2Periph_GPIOB		/* GPIO端口时钟 */
#define LED1_GPIO_PIN				GPIO_Pin_5			        /* 连接到SCL时钟线的GPIO */

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
  资料获取            ( 滑到最后添加群号看公告免费获取)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

/************************************************************************************//  功能描述   : ESP-01S测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线  LED看情况串联电阻 
LED-----------------------------------------------STC89C52RC
LED(+)--------------------------------------------3.3V
GND(-)--------------------------------------------P1.0ESP-01S------------------------------------------STC89C52RC
VCC-----------------------------------------------3.3V
GND-----------------------------------------------GND
RX------------------------------------------------P3.1
TX------------------------------------------------P3.0*************************************************************************************/

STM32F103C8T6

/************************************************************************************//  功能描述   : ESP-01S测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟 72M
接线
ESP-01S-------------------------------STM32F103C8T6
VCC-----------------------------------3.3V
GND-----------------------------------GND
RX------------------------------------PA2
TX------------------------------------PA3LED-----------------------------------STM32F103C8T6
LED(+)--------------------------------PB5
GND(-)--------------------------------GND
*****************************************************************************************/

这篇关于K_A23_001 基于STM32等单片机AT指令驱动ESP-01/ESP-01S实现手机遥控点灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/809669

相关文章

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

MySQL8.0设置redo缓存大小的实现

《MySQL8.0设置redo缓存大小的实现》本文主要在MySQL8.0.30及之后版本中使用innodb_redo_log_capacity参数在线更改redo缓存文件大小,下面就来介绍一下,具有一... mysql 8.0.30及之后版本可以使用innodb_redo_log_capacity参数来更改

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2