Forum: PC-Programmierung rs232 funktioniert mit Hterm aber nicht mit PHP


von Michael M. (mikmik)


Lesenswert?

Hello,
mein uC sendet alle 1s einen Test character. Mit HTerm kann ich Baudrate 
auf 19200 stellen und die restlichen settings auf 8N1. Das Testzeichen 
kann ich super lesen. Wenn ich das selbe mit PHP machen will (php5.2 
unter winxp) dann empfängt er zwar sekündlich ein Zeichen, ist aber 
Müll. Sieh also nach falsch eingestellten settings aus. Wenn ich in der 
systemsteuerung nachsehe, stehen dort die richtigen settings drinn und 
in php kann ich keine settings angeben...   weiß jemand rat?

hier mein code:
1
$fd = dio_open('COM7', O_RDWR | O_NOCTTY | O_NONBLOCK );  
2
if (!($fd)) {echo "error";exit;}
3
do  {
4
$data = dio_read($fd, 1);
5
echo $data;
6
}
7
while (!($data=="k"));

Die Variante mit
1
$fp2 = fopen ("COM7", "r+");
2
do  {
3
  $data=fgets($fp2, 1);
4
echo $data;
5
}

hab ich auch schon probiert, da kommt gar nix an. nichtmal müll.

von hp-freund (Gast)


Lesenswert?

Michael M. schrieb:
> in php kann ich keine settings angeben...

Sicher?

http://de3.php.net/manual/en/function.dio-tcsetattr.php

von hp-freund (Gast)


Lesenswert?

Sorry! Hab noch weiter gelesen:

    Note: This function is not implemented on Windows platforms.

Nehme alles zurück...

von hp-freund (Gast)


Lesenswert?

Und noch einmal ;-)

Unten auf der verlinkten Seite gibt es ein Windows Beispiel.

von Michael M. (mikmik)


Lesenswert?

Hallo!
Danke dir! Hatte vergessen dazuzuschreiben, dass ich eh apiert hab dass 
es tcsetattr unter win nicht gibt. mit exec mode ging's dann.

falls es noch wen interessiert: tippt man nur mode (command line) dann 
sieht man die aktuellen einstellungen. Und: um die einstellungen mit 
"exec mode..." zu ändern musste ich wirklich COM7 und nicht com7 
schreiben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.