[C] Serielle Schnittstelle rs232c

skaoson

Grünschnabel
Guten Tag,
ich möchte die Datn von meinem Messgerät(Saturn 700) an den Pc übertragenund diese auf eine txt Datei speichhern. Das alle smuss unter Windows laufen. Später müsse die Messungen auf den Drücken übergeben werden und ausgedrückt werden aber erstmal möchte ich die Daten auf dem PC haben. Mein Problem ist, ich habe kein richtiges C-code dafür gefunden.Meine C-Kenntnisse sind auch nciht so gut, um mir ein eigenes Code zu schreiben, ich habe es schon versucht, leider hatte ich kein Erfolg. Ich google mich seit 2 Tagen tot. Ich habe ein paar C-Programme gefunden, sie konnten mir jedoch nicht weiter helfen. Deswegen wollte ich hier fagen, ob jemand von euch mit eventuell mit einem C-Code für die Datenübertragung der RS232 Schnittstelle helfen könnte.

Viele dank schon mal
 
ich habe mir diese Dokumentation durchgelesen. Ich habe wie gesagt mehrere Codes ausprobiert und keine hat richtig funktioniert, zum beispiel dieses [
Code:
#include <stdio.h>
#include <conio.h>

#define PORT 0x3F8   /* COM1 */

/* Defines Serial Ports Base Address
   COM1 0x3F8
   COM2 0x2F8
   COM3 0x3E8
   COM4 0x2E8
*/

int main(void)
{
  int checkBuffer;
  int c;
  _outp(PORT + 1 , 0);     /* Turn off interrupts */
  /* PORT - Communication Settings        */
  _outp(PORT + 3 , 0x80);  /* SET DLAB ON */
  _outp(PORT + 0 , 0x0C);  /* Set Baud rate - Divisor Latch Low Byte */
  /* Default 0x03 =  38,400 BPS */
  /*         0x01 = 115,200 BPS */
  /*         0x02 =  56,700 BPS */
  /*         0x06 =  19,200 BPS */
  /*         0x0C =   9,600 BPS */
  /*         0x18 =   4,800 BPS */
  /*         0x30 =   2,400 BPS */
  _outp(PORT + 1 , 0x00);  /* Set Baud rate - Divisor Latch High Byte */
  _outp(PORT + 3 , 0x03);  /* 8 Bits, No Parity, 1 Stop Bit           */
  _outp(PORT + 2 , 0xC7);  /* Configure FIFO Control Register         */
  _outp(PORT + 4 , 0x0B);  /* Turn on DTR, RTS, and OUT2              */
  printf("\nSample Comm's Program. Press ESC to quit \n");

  do {
    checkBuffer = _inp(PORT + 5); /* Check LSR to see if characters has been received */
    if (checkBuffer & 1) {
      c = _inp(PORT);             /* get the character  */
      printf("%c", c);            /* print character to screen  */
      if (c == 13) printf("\n");
      _outp(PORT, c);             /* write the character to the port */
    }
    if (kbhit()) {
      c = getch();        /* if a key is/was pressed, get character from keyboard */
      _outp(PORT, c);     /* send Char to Serial Port */
    }

 } while (c !=27);       /* Quit when ESC (ASCII 27) is pressed */

  system("pause");
  return 0;
}

Ich aknn das Programm nicht ausführen, es stürtzt immer ab, das geschiecht auch unter windows 2k. Die rs232 sollte offen sein, da ich über die Hyperconsole die Messungen auf dem Pc übertragen kann.
 
Zurück