volatile int item;
volatile int KQ;
void TXT_HMI(String widget_name, int display_str) {
for (int i = 1; i <= 3; i = i + (1)) {
Serial.write(0xff);
}
Serial.print(String(widget_name) + String("=") + String(display_str));
for (int i = 1; i <= 3; i = i + (1)) {
Serial.write(0xff);
}
}
void TXT_HMI2(String widget_name, String display_str) {
for (int i = 1; i <= 3; i = i + (1)) {
Serial.write(0xff);
}
Serial.print(String(widget_name) + String("=\"") + String(display_str) + String("\""));
for (int i = 1; i <= 3; i = i + (1)) {
Serial.write(0xff);
}
}
void setup(){
Serial.begin(9600);
item = 0;
KQ = 0;
pinMode(34, INPUT);
pinMode(35, INPUT);
}
void loop(){
KQ = analogRead(34);
TXT_HMI("n0.val", KQ);
delay(20);
if (digitalRead(35) == 0) {
TXT_HMI2("bt0.txt", "正常");
} else {
TXT_HMI2("bt0.txt", "失效");
}
printf=("get n1.type");
}
使用官方指令集中get指令,用printf接收get指令中n1的数值,但是ESP32无法接收
整体程序是使用ESP32接收俩个传感器的数据发送至串口屏,现在想增加一个小功能,获取串口屏n1控件的值,无法实现
我了解你想要在ESP32中通过串口屏控件获取n1的值,但是目前你尝试使用官方指令集中的get指令并且打印出n1的值时失败了。在这种情况下,我建议你检查以下几个方面:
确认ESP32和串口屏之间的连接是否正确。检查线路连接是否正确,以及波特率是否匹配。
确保你使用的get指令是正确的。你可以尝试使用其他指令或查询串口屏的文档来验证get指令是否正确。
确认ESP32正确接收到get指令的返回值。你可以在接收到串口屏返回的数据后,通过串口打印出来进行验证。
如果你确定以上三个方面都正确无误,但还是无法获取n1的值,那么我建议你尝试使用其他方法。你可以尝试使用ESP32的软件串口来模拟两个串口之间的交互,并通过打印调试信息来排查问题。在代码实现过程中,你可以使用Serial library来模拟串口的交互。例如:
// 配置软串口
SoftwareSerial mySerial(16, 17); // RX, TX
void setup()
{
// 打开串口:
Serial.begin(9600);
while (!Serial) {
; // 等待串口准备好
}
// 配置软串口:
mySerial.begin(9600);
}
void loop()
{
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
在使用软串口之后,你可以通过串口打印来验证你是否能正确获取到n1的值。如果还有问题,你可以在问题描述中提供更多细节,这样chatbot就能更好地理解你的问题并提供更具体的解决方案了。