schuby
November 19, 2025, 11:40am
1
Hallo zusammen, ich übe mich weiter in C++ (Bin totaler Anfänger)
Dabei habe ich VisualStudio und PlatformIO Installiert und Programmiere mein ESP32.
In meiner main.cpp kann ich über WLAN und Serielle senden, so wie es viele Demos zeigen
die man im Internet sieht.
Zu meinen Problem, ich möchte die Serielle für Debug benutzen.
Weil ich mehrere Header Datein *.hpp und *.cpp habe. Aber aus andere Datein kann ich über
die Serielle nichts senden. Nur in der main.cpp.
Muss ich noch etwas einbinden ? Was mache ich falsch ?
mfg
combie
November 19, 2025, 11:53am
2
schuby:
Was mache ich falsch ?
Woher soll ich das wissen!
Ich sehe ja nix.
Tipp:
Ein aufmerksames Lesen der Fehlermeldungen kann hilfreich sein.
Ein geheim halten von Code und Fehlermeldungen ist kontraproduktiv.
schuby
November 19, 2025, 12:39pm
3
ok dann zeige ich mal was ich habe. Aber bedenke ich bin Anfänger.
Deswegen auch meine Frage hier im Forum weil ich nicht weiter komme.
main.cpp
#include <Arduino.h>
#include <iostream>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <sstream>
#include <WIFI.h>
#include <stdio.h>
#include <stdlib.h>
#include <String.h>
#include <errno.h>
using namespace std;
#include <float.h>
#include <math.h>
#include <stdio.h>
#include "includes/serial.hpp"
const char* ssid = "****************"; //Enter your wifi SSID
const char* password = "************"; //Enter your wifi Password
int port = 23;
WiFiServer server(port);
WiFiClient client;
void setup() {
Serial.begin(19200);
Serial.println();
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
server.begin();
}
void loop(){
WiFiClient client = server.available();
while(client.connected())
{
//while (client.connected() && client.available())
if (client.available())
{
rec_str = "";
rec_str = client.readStringUntil('\n');
if (rec_str[0] == '1')
{
client.println(rec_str);
void berechne();
}
}
}
}
serial.hpp
#pragma once
#include <Arduino.h>
#include <iostream>
using namespace std;
void(berechne);
serial.cpp
#include <Arduino.h>
#include <iostream>
#include <string>
using namespace std;
int a;
int b = 40;
int c = 20;
void berechne(){
a = b + c;
Serial.println(a); // Debug ausgabe
}
mfg
combie
November 19, 2025, 12:56pm
4
schuby:
void(berechne);
Was ist das?
Meinst du da vielleicht:
void berechne();
Denn:
E:\Programme\arduino\portable\sketchbook\sketch_nov19c\sketch_nov19c.ino:5:5: warning: unnecessary parentheses in declaration of 'berechne' [-Wparentheses]
5 | void(berechne);
| ^~~~~~~~~~
E:\Programme\arduino\portable\sketchbook\sketch_nov19c\sketch_nov19c.ino:5:5: note: remove parentheses
5 | void(berechne);
| ^~~~~~~~~~
| - -
sketch_nov19c:5:6: error: variable or field 'berechne' declared void
5 | void(berechne);
| ^~~~~~~~
combie
November 19, 2025, 1:02pm
5
Je öfter du das wiederholst, desto fester glaubst du da selber dran.
Je mehr wird das zu einer unabänderbaren Wahrheit.
Es gibt einen Ausweg: Lernen!
schuby
November 20, 2025, 9:19am
6
In jeden Forum gibt es diese eine Person.
Und ich habe immer das Glück diese eine Person kennen zu lernen.
wwerner
November 20, 2025, 9:28am
7
Hast du denn deine Fehler mal korrigiert?
Tommy56
November 20, 2025, 10:44am
8
Das könnte an Dir liegen.
Gruß Tommy
schuby
November 20, 2025, 11:21am
9
@wwerner aber sicher doch, in mein Programm war es richtig geschrieben, nur
hier im Forum hatte ich das falsch geschrienben.
mfg
combie
November 20, 2025, 11:37am
10
Welchen Sinn macht der Prototype da?
Da soll doch bestimmt ein Funktionsaufruf hin!
Oder ist das auch wieder nur Fantasie Code um uns zu täuschen?
Übrigens:
Dein Gejammer empfinde ich als störend/ablenkend.
Investiere die Energie doch besser in konzentrierte Arbeit.
Und warum schreibst du das doppelt ?
Wäre da kopieren nicht einfacher und sicherer ?
wwerner
November 20, 2025, 12:02pm
12
Wir können nicht auf deinen Monitor schauen. Und hier war es falsch.