GNU C: Über RS232 ASCII-Steuerzeichen senden

Hallo,

ich habe folgendes Problem:
ich möchte über Port1 (RS 232) des MOXA W-325A ASCII-Steuerzeichen senden. Hierbei handelt es sich um die 0x01 (SOH), 0x02 (STX) usw.

Hierzu wird mir eine Funktion (siehe unten) zur Verfügung gestellt, die zumindest für alle ASCII-Werte ab 0x10 sehr gut funktioniert, aber leider nicht für die notwendigen 0x01 usw.

Hier der Quelltext:

test.c :

#include „serial.h“
int main (int argc, char* argv[])
{
while (1)
{
char SOH[] = { 1, 0}; // 0x01 - Start Of Header
printf („SerialWrite: %s\n“, SOH);
SerialWrite (PORT1, SOH, strlen(SOH));
}
return 0;
}

serial.c :

int SerialWrite (int port, char* str, int len);
{
int fd = FindFD (port);
if (fd

Hallo!

Kannst du mal ein Beispiel posten, welches nicht das erzeugt, was du erwartest/möchtest? Ich habe zwar eine Vermutung, würde aber gerne noch sehen, ob ich das richtige vermute.

Gruss
Kayde

Hallo,

ich habe die angefragten Beispiele herausgearbeitet und wollte sie eigentlich hier einstellen.

Bei den einzelnen Beispielen habe ich bemerkt, dass das Problem an PUTTY lag: das Tool kann die Steuerzeichen SOH, STX usw. garnicht darstellen.
Ein neu erstelltes Programm an der seriellen Schnittstelle (anstelle von putty) hat dann gezeigt, dass die Daten doch gesendet werden.

Danke für die Rückmeldung, die mich auf den richtigen Weg gebracht hat.

michi1721

Ich arbeite auch mit seriellen Karten von Moxa. Moxa stellt auch ein Terminalprogramm für Windows zur verfügung. Das kann man in einem hex-Mode betreiben und sieht dann direkt die Zeichencodes.
http://www.moxa.com/support/download.aspx?d_id=1189

Adib.