小编Sir*_*d G的帖子

在ESP8266上的C中读取const *时崩溃

我正在创建一个系统,该系统通过SoftwareSerial从Arduino Uno读取传感器值,并通过MQTT发布它。但是,我认为所面临的问题更为笼统,我必须承认我是c语言的新手。

我正在读取数据,并将其拆分为程序顶部定义的两个const *变量。

当我读回从串行连接中解析的已保存的“数据”和“主题”变量时,我只会得到垃圾输出,通常会崩溃,从而重启设备。

它可以在read-from-serial函数中成功打印它们,但以后无法正确读取。它与数据的保存方式有关吗?我可以为变量显式分配一些内存吗?

我正在使用ESP8266(ESP07)芯片,其波特率降低且电源电压合适。它似乎运行良好且稳定。

#include <StringSplitter.h>
#include <PubSubClient.h>
#include <ESP8266WiFi.h>
#include <time.h>

//const char* ssid = "xxxx";
//const char* password =  "xxxx";
const char* ssid = "xxxx";
const char* password =  "xxxx";
const char* mqttServer = "xxxx;
const int mqttPort = xxxx;
const char* mqttUser = "xxxx";
const char* mqttPassword = "xxxx";
int timezone = 1;
int dst = 0;
Run Code Online (Sandbox Code Playgroud)

数据存储在这里:

char* data;
char* topic;
boolean newData = false;
boolean unpublishedData = false;

WiFiClient espClient;
PubSubClient client(espClient); …
Run Code Online (Sandbox Code Playgroud)

c arduino software-serial esp8266

0
推荐指数
1
解决办法
81
查看次数

标签 统计

arduino ×1

c ×1

esp8266 ×1

software-serial ×1