1、步骤如下::1、GND

发布时间:2025-06-24 20:10:02  作者:北方职教升学中心  阅读量:625


这里只记录一下大概内容,方便以后调试。;ESP8266+STM32远程点灯(过程解释)#xff0;

请参阅阿里云物联网平台设备接入、

发送数据时需要使用变量,如果直接使用串口发送函数,没有变量,因此, AT。ESP8266的电压范围为3.0V-3.6V,我的设备试图通过5V电压࿼ESP8266未燃烧#xff0c;但是发热明显󿀌不要在保守的时候尝试这种方法。

1、步骤如下::

1、GND。恢复出厂设置-擦除flash中保存的所有参数。RX。fputc函数也是一个一个打印的。

详情请看阿里云ჰ,连接AP。重启模块。AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"设置时域和SNTP服务器 。

int main(void){ OLED_Init(); Serial_Init();///初始化串口2配置 USART_DMA_Init();///初始DMA转运USART2_RX配置 ESP8266_Init();//ESP8266连接服务器 while(1) { i++; ///一次发送多个对象模型数据 printf("AT+MQTTPUB=0,\"/sys/ibln7d8PcHp/ESP8266-01/thing/event/property/post\",\"{\\"params\\\":{\"EnvironmentTemperature\":%d},\\\"LightLux\\\":%d,\\\"AirSpeed\\\":%d}}\",1,0\r\n",i,i+1,i+2); ///一次发送一个物体模型数据 printf("AT+MQTTPUB=0,\"/sys/ibln7d8PcHp/ESP8266-01/thing/event/property/post\",\"{\\"params\\\":{\"LightLux\":%d}}\",1,0\r\n",i);// printf("AT+MQTTPUB=0,\"/sys/ibln7d8PcHp/ESP8266-01/thing/event/property/post\",\"{\\\\"params\\\":{\\"LightLux\":%d}}\",1,0\r\n",i); Delay_ms(10000);//延时10秒 }}。可使用面包板,扩展线路󿼌将ESP8266TX同时接收STM32和串口工具的RX引脚,使用电脑串口调试软件观察ESP8266的配置状态,方便调试。sprintf只能接收直接写的参数 va_end(arg);///释放arg空间 Serial_SendByte(string);//调用自己写的串口发送字节函数}。GND。3.3。官方文件称,将fputc函数发送到串口󿼌当然, ESP826。

 注意:有时会出现接线正确无法发送指令的情况,在网上发现的原因是,USB转串口工具输出的3.3V电压驱动能力不好,ESP8266,可更换其他稳定的供电设备。在keil中使用printf之前,TX。修改keil的配置。TX。管理、TX。GND。

stm32。

江科大自动化协会printf重定义资料---<<stm32入门教程>>---<<发送+串口;接收>>视频讲解。

RX。esp8266用stm32调试。用USB串联工具连接ESP8266,首先调通esp8266到阿里云的线路(这一步在esp8266的后续调试中也尤为重要c;因为这样,调试ESP8266。,我手里没有万用表,需要设置一条线。

2、#xff00c;#xff000不能测量验证c;但是, 打印函数。'例:

topic࿱指令a;

2、

TX。

AT指令。

1、

将printf打印的东西输出到串口。

要求数据格式:

 。

要求数据格式:

 。

方法二:使用sprintf函数(这是实现打印到串口的第二种方法)

sprintf函数不需要重定义,因为该函数的第一个参数是指定的打印位置。

重写fputc()函数,因为使用printf函数时,

ESP8266日志接收函数(STM32收到ESP8266发送的日志数据,分析数据做初始反馈)

///检查错误反馈函数voidid ESP_FeedBack(uint8__t t){ Delay_ms(1000); if( strstr((const char *)ESP8266_To_Serial,"ERROR") ) { Refresh_DMA();////刷新DMA缓冲区和计数器 memset(ESP8266_To_Serial,0,100);///清零数组 OLED_ShowString(2,1,"ERR:"); OLED_ShowNum(2,4+t,t,1); }}。

AT+CWJAP="wifiname","password" 。
3.3。USB转串口工具。USB转串口工具。
AT+RESTORE。

方法1:重定向printf。

esp8266。

方法二:使用sprintf函数(这是打印到串口的第二种方法)

sprintf函数不需要重定义,因为这个函数的第一个参数是指定的打印位置。

main.c。”之前添加转义字符 '\。

#include <stdio.h>char string[100];//定义一个足够大的缓存空间sprintf(string,"NUM=5d\n",666);//输出到string。

GND。
3.3。需要重定义printf函数来解决这个问题。
AT+CWMODE=1.设置wifi模式-AP模式。RX。
AT+RST。

ESP8266初始化函数(AT指令用STM32串口发送给ESP826)

///初始化ESP8266连接到阿里云函数void ESP8266_Init(void){ OLED_ShowString(1,1,"loading..."); //1 Serial_String("AT+RST\r\n"); ESP_FeedBack(1); Delay_ms(2000); //2 Serial_String("AT+RESTORE\r\n"); ESP_FeedBack(2); Delay_ms(2000); //3 Serial_String("AT+CWMODE=1\r\n"); ESP_FeedBack(3); Delay_ms(2000); //4 Serial_String("AT+CIPSNTPCFG=1,8,\"ntp1.aliyun.com\"\r\n");////加转义字符 ESP_FeedBack(4); Delay_ms(3000); //5 Serial_String("AT+CWJAP=\"LAPTOP\",\"asdfghjkl\"\r\n");////加转义字符 ESP_FeedBack(5); Delay_ms(3000); //6 Serial_String("AT+MQTTUSERCFG=0,1,\"NULL\",\"ESP8266-01&ibln7d8PcHp\",\"924e8007d0259c7a7d31bd3f01fd1bfdc270b8e689fa757e4f23de4ccb4;,0,0,\"\"\r\n"); ESP_FeedBack(6); Delay_ms(5000); //7 Serial_String("AT+MQTTCLIENTID=0,\"ibln7d8PcHp.ESP8266-01|securemode=2\\,signmethod=hmacsha256\timestamp=1679206129784|\"\r\n"); ESP_FeedBack(7); Delay_ms(5000); //8 Serial_String("AT+MQTTCONN=0,\"iot-06z00ehfqp2bgmm.mqtt.iothub.aliyuncs.com\",1883,1\r\n"); ESP_FeedBack(8); Delay_ms(5000); //9// Serial_String("/ibln7d8PcHp/ESP8266-01/user/get\",1\r\n");// ESP_FeedBack(9);// Delay_ms(5000); //10订阅模型 Serial_String("AT+MQTTSUB=0,\"/sys/ibln7d8PcHp/ESP8266-01/thing/service/property/set\",1\r\n"); ESP_FeedBack(9); Delay_ms(5000); }。

AT+MQTTUSERCFG=0,1,"NULL","username","passwd",0,0,""
AT+MQTTCLIENTID=0,"ClientId"
AT+MQTTCONN=0,"mqttHostUrl",1883,1。

fputc函数a;

#include <stdio.h>int fputc(int ch,FILE *f){ Serial_SendByte(ch);////这里调用自己写的串口发送字节函数 return ch;}///主函数void main(void){ printf("NUm=%d\n",666); while(1) { } }。修改keil的配置。

GND。
sprintf函数功能是将格式化字符输出到字符串中。
AT+MQTTPUB=0,"/sys/{ProductKey}/{DeviceName}/thing/event/property/post","{\"params\":{"EnvironmentTemperature":35}}",1.0.
报告设备属性。b站这个up主的视频。更换电源可以解决这个问题b;此外,Clientld需要在“

方法3:*xff08包装sprintf函数;该方法采用可变参数列表,记录下来只是学习)void Serial_printf(char *format,...){ char string[100]; va_list arg;///存储可变参数列表中的变量 va_start(arg,format)///从format到arg中存储参数列表 vsprintf(string,format,arg);///打印格式 这里的up解释是,AT+MQTTPUB=0,"/{ProductKey}/{DeviceName}/user/update","{"temp":50.5}",1.0.发布自定义Topic。AT+MQTTSUB=0,"/{ProductKey}/{DeviceName}/user/get",1.订阅自定义topic。RX。反复烧写#xff00c;只需要几个AT指令)
接线方式。
3.3。printf函数也会打印输出到串口。就不需要反复修改代码,运维等10分钟。RX。

接线方式。

AT+MQTTSUB=0,"/sys/{ProductKey}/{DeviceName}/thing/service/property/set",1.
订阅模型。