Ich habe ein paar Tage lang gesucht, aber keine Ergebnisse gefunden.
Ich habe einen Raspberry Pi Zero 2 W und einen Sim7600-Hut und möchte mit einem von mir geschriebenen Programm Befehle an ihn senden.
Wenn ich minicom als sudo minicom -D /dev/ttyUSB2 verwende, wird die at-Befehlsantwort problemlos von sim7600 an Raspberry Pi gesendet.
Aber wenn ich mein Programm ausführe, erhalte ich keine Antwort von sim7600 beim Senden von at-Befehlen. Ich weiß, dass die at-Befehle in meinem Programm ordnungsgemäß funktionieren, denn wenn ich den Befehl AT+CRESET in mein Programm eingebe, wird das Modul zurückgesetzt. Wenn ich dann mein Programm schließe und das Programm sofort erneut ausführe, kann ich die Antwort auf sehen at-Befehle, die ich sende, aber nach ein paar Sekunden erfolgt erneut keine Antwort.
Das ist mein C#-Code:
class Program
{
static SerialPort portUSB;
static void Main()
{
Console.Write("select Port:");
string port = Console.ReadLine();
portUSB = new SerialPort(port, 115200);
Console.WriteLine("connecting to ttyUSB2 ...");
portUSB.Handshake = Handshake.None;
portUSB.DtrEnable = true;
portUSB.RtsEnable = true;
portUSB.ReadTimeout = 2000;
portUSB.WriteTimeout = 2000;
portUSB.DataReceived += PortUSB_DataReceived;
portUSB.Open();
Console.WriteLine("Write and Enter to send Message and press ctrl+c to exit");
while (true)
{
if (Console.KeyAvailable)
{
string message = Console.ReadLine();
if (!string.IsNullOrEmpty(message))
{
SendMessage(message);
}
}
Thread.Sleep(100);
}
}
private static void PortUSB_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Console.WriteLine("Data Received:");
sp.DiscardInBuffer();
sp.DiscardOutBuffer();
Console.Write(indata);
}
static void SendMessage(string message)
{
try
{
if (portUSB.IsOpen)
{
portUSB.Write(message + "\r\n");
Console.WriteLine("Command Sent " + message);
}
else
{
Console.WriteLine("ttyUSB2 Not open!");
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Environment.Exit(0);
}
}
}
https://i.sstatic.net/gwzRpx1I.png
1- Um die korrekte Verbindung sicherzustellen, habe ich zunächst minicom verwendet und geöffnet den ttyUSB2-Port und sendete AT-Befehle und empfing Antworten.
2- Ich habe die sim7600 mit einem Micro-USB-Kabel an das Windows-System angeschlossen und das Programm ausgeführt, das ich darauf geschrieben hatte (auf COM7). Die Befehle wurden gut gesendet und die Antworten wurden empfangen.
3- Ich habe den sim7600-Hut an den Raspberry Zero angeschlossen und mein Programm ausgeführt (/dev/ttyUSB2). Die at-Befehle wurden gesendet, aber es wurde keine Antwort empfangen.
Senden von at-Befehlen an sim7600 und Empfangen einer Antwort auf dem Raspberry Pi Zero ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post