Hallo robocat,
ich habe mal ein bischen mit dein C-Code rumgespielt und bin auf einige Probleme gestoßen, aber erstmal hier wie er jetzt bei mir aussieht:
Code:
// free code for reading gns9810 gps mouse attached to COM1 port done by robocat
// compiler: bcc32, platform: xp
#include <stdio.h>
#include <windows.h>
int main(void)
{
HANDLE port;
DCB dcb;
unsigned long dwNum;
unsigned char c, string[6];
port=CreateFile("COM1", // hier com-port einstellen
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL); // serielle Schnittstelle öffnen
if(!port)
{
printf("failed to open port!\n");
getch();
exit(1);
}
if(!GetCommState(port, &dcb))
{
CloseHandle(port);
printf("failed to get port!\n");
getch();
exit(1);
}
dcb.DCBlength=sizeof(dcb);
dcb.BaudRate = CBR_38400;
dcb.ByteSize = 8; // 8 Datenbits
dcb.Parity = 0; // kein Paritätsbit
dcb.StopBits = ONESTOPBIT; // 1 Stoppbit
dcb.fBinary = TRUE;
dcb.fParity = 0;
dcb.fNull=TRUE;
if(!SetCommState(port, &dcb))
{
CloseHandle(port);
printf("failed to set port!\n");
getch();
exit(1);
}
sprintf(string,"%c%c%c%c%c",255,86,120,120,86);
if(WriteFile(port,string,5,&dwNum,NULL))printf("init ok!\n");
while(run)
{
ReadFile(port,&c,1,&dwNum,NULL);
printf("%c",c);
}
CloseHandle(port); // serielle Schnittstelle schließen
return(0);
}
Wenn ich diesen nun laufenlasse mit verbundener RxD und TxD Leitung kommen nicht wie ich dachte die zahlen 255,86,120,120,86, sonder immer nur die ganze zeit "V". Dann dachte ich das das an dem %c liegen muss und habe es durch ein %i ersetzt damit er die zahlen auch als zahlen immt und es kam nur "ö".
Jetzt weiß ich nicht wie ich da meine zahlen senden soll für das Micro-Servoboard von Robotikhardware.
kannst du mir vll nochmal weiterhelfen?
MfG Jan
Lesezeichen