我正在创建一个系统,该系统通过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)