Problemy z odczytem portu szeregowego w Delphi z TComPort - może asynchroniczna?
Transmisja szeregowa
From: "PCAutor" <pio_czaj_at_nospam_poczta.onet.pl>
Subject: Transmisja szeregowa
Date: Thu, 8 Feb 2001 20:42:58 +0100
Witam!
Wlasnie robie program w Delphi, ktory ma komunikowac sie z pewnym uzadzeniem
przez port szeregowy.
Uzywam komponentu TComPort. Gdy polacze miedzy soba dwa komputery to
komunikuja sie bez problemu.
Ale gdy probuje wyslac znak z urzadzenia to program nie odczytuje portu.
Wszytkie ustawienia tzn. predkosc, porzystosc, bity styopu itp sa ustawione.
Byc moze przez to w urzadzeniu jest stosowana transmisja asynchroniczna.
czy mial ktos takie problemy ??
Jak je rozwiazac ?
Acha znaki wysylane przez urzadzenie sa identyczne jak te wysylane przez
komputer (na oscyloskopie)
Prosze o pomoc!
A moze ktos przeslalby mi jakies przylkadowe fragmenty kodu ?!?!?
Pomocy
Piotrek
From: "peters" <peters_at_nospam_poczta.onet.pl>
Subject: Re: Transmisja szeregowa
Date: Thu, 8 Feb 2001 21:22:03 +0100
Robisz podstawowy blad: uruchamiasz dwa programy jednoczesnie.
Postaraj sie o program terminala na PC. Prosty program tego typu znajdziesz
na mojej stronie.
Uruchom transmisje ze swojego urzadzenia do terminala, potem podlacz
terminal do programu w Delphi i sprawdz czy Twoj program dziala a dopiero na
koncu probuj to co teraz
--
pozdrawiam, peters
peters_at_nospam_poczta.onet.pl
http://peters.republika.pl (strona Petersa dla elektronikow)
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: Transmisja szeregowa
Date: Fri, 09 Feb 2001 11:55:21 +0100
PCAutor wrote:
Byc moze przez to w urzadzeniu jest stosowana transmisja asynchroniczna.
Afaik pecetowy uart nie moze pracowac w innym trybie niz w transmisji
asynchronicznej.
czy mial ktos takie problemy ??
Jak je rozwiazac ?
Nasuwaja mi sie 2 problemy ktore mialem, mianowicie pecet jest troszke
wolny jak sie recznie obsluguje porty... dlatego jezeli wyslesz dane za
szybko w stosunku do obrobienia ich na pc to uart moze zapalac flage ze
poprzednia dana jest nieodebrana a juz jest nastepny bajt do odbioru i
cos sie wtedy kasztani. Ale ja to pisalem w pascalu wiec to troche inna
technologia.
Na poczatek poradze ci zebys podpial urzadzenie do portu, odpalil
program terminala (nawet glupi windziany hyperterm) i zobaczyl czy inny
program moze odbierac dane. Moze problem tkwi w niezupelnie 'takiej
samej' transmisji, ewentualnie zapisz to co otrzymales do pliku i
porownaj z oczekiwana zawartoscia.
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|
From: "Piotr Laskowski" <pitlab_at_nospam_kki.net.pl>
Subject: Re: Transmisja szeregowa
Date: Fri, 9 Feb 2001 20:23:05 +0100
Wlasnie robie program w Delphi, ktory ma komunikowac sie z pewnym
uzadzeniem
przez port szeregowy.
Uzywam komponentu TComPort.
Napisałem kilka programów zarówno dla '51 jak i H8S, które komunikowały się
z programem napisanym w Delphi, chyba nawet z tym samym komponentem :-)
Gdy polacze miedzy soba dwa komputery to komunikuja sie bez problemu.
Rozumiem że w takim raze problem leży po stronie kontrolera - tylko nie wiem
czego uzywasz :-)
Ale gdy probuje wyslac znak z urzadzenia to program nie odczytuje portu.
Wszytkie ustawienia tzn. predkosc, porzystosc, bity styopu itp sa
ustawione.
Byc moze przez to w urzadzeniu jest stosowana transmisja asynchroniczna.
Acha znaki wysylane przez urzadzenie sa identyczne jak te wysylane przez
komputer (na oscyloskopie)
Mogło by się tak dziać jeżeli miałbyś różne prędkości (niestandardowy
kwarc).
A moze ktos przeslalby mi jakies przylkadowe fragmenty kodu ?!?!?
Idą na priv.
Piotrek.