FAQ | Points | Add... | Recent posts | Search | Register | Log in


Sterowanie portem COM. RS232


Post new topic  This topic is locked      Main Page -> Forum Index -> Programming Generally -> Sterowanie portem COM. RS232
Author
Message
goldfire
Poziom 13
Poziom 13


Joined: 06 Oct 2003
Posts: 141
Location: Toruń

Post#1 Post from the author of the topic 31 Mar 2004 14:07   

Sterowanie portem COM. RS232


W jakim języku programowania jest najprościej napisać obsługę rs232?
Na PC?

Zamykam. - arnoldziq
Back to top
   
Tdv
Poziom 22
Poziom 22


Joined: 27 Aug 2002
Posts: 2263
Location: Śląsk

Post#2 31 Mar 2004 14:13   

Obsluga rs232


Chińskim albo w Suahili.
Na przyszłość proponuję zadawać precyzyjniesze pytania bo z tego to niewiele wynika czy to ma być na PC czy na uC, jeżeli na uC to na jaki.
A zasadniczo to npisz w tym języku, który znasz.
Back to top
   
jony15
Poziom 18
Poziom 18


Joined: 25 Apr 2003
Posts: 497
Location: okolice Tarnowa

Post#3 01 Apr 2004 15:01   

Re: Obsluga rs232


Proponuje jezyk C. A konkretniej polecenie "bioscom" ( dziala pod win98 )
lub outportb ( pod dos w windzie nie kce dzialac ). zagladnij do helpa po szczegoly. pozdrowienia :-) deal1.
Back to top
   
emj
Poziom 12
Poziom 12


Joined: 03 Feb 2003
Posts: 92

Post#4 06 Apr 2004 14:56   

Re: Obsluga rs232


ja proponuje ci w pascalu. do odczytywania portu sluzy funkcja portw[adres+6] gdzie 6 jest offsetem a adres to $3f8 dla com1 i $2f8 dla com2.
przykladowe zczytanie linii stan:=portw[$3f8+6]; (stan jest zminna typu byte)
jezeli stan bedzie rowny:
16- to cts
32- to dsr

64- to ri
128- to dcd
a jak bedzie np. stan rowny 48 to jedynka bedzie na cts i dsr bo 16+32=48

do nadawania sluzy procedura port[adres]:={wartosc};
powodzenia
proponuje zajrzec na stronki:
4programmers.net
binboy.org
Back to top
   
Google

Google Adsense


Post# 06 Apr 2004 14:56   





Back to top
   
BoskiDialer
Poziom 22
Poziom 22


Joined: 28 Nov 2003
Posts: 1533
Location: Żory

Post#5 06 Apr 2004 16:55   

Obsluga rs232


Ja polecam książke "RS 232C praktyczne programowanie od pascala i C++ do Delphi i Buildera" wyd Helion.
Back to top
   
fantom
Poziom 22
Poziom 22


Joined: 23 Mar 2003
Posts: 1659
Location: Łódź

Post#6 06 Apr 2004 17:00   

Re: Obsluga rs232


Ja tez ja polecam ale najpierw trzeba miec jakies podstawy z Pascala lub C zeby to przegryzc.
Back to top
   
yaroo
Poziom 9
Poziom 9


Joined: 13 Jun 2003
Posts: 32

Post#7 07 Apr 2004 21:00   

Re: Obsluga rs232


a ja udziele chyba najbardziej konkretnej informacji polecam komponent cia Cport pod Delphi
www.mestdagh.biz
na tej stronie znajdziesz instalke tego komponentu, przyklady zastosowan itd itp
ja przy uzyciu tego komponentu zrobilem sobie oprogramowanie do sterowania swiatlem w pokoju:)
pozdrawiam
Back to top
   
fantom
Poziom 22
Poziom 22


Joined: 23 Mar 2003
Posts: 1659
Location: Łódź

Post#8 07 Apr 2004 21:27   

Re: Obsluga rs232


Wow niesamowity konkret 8O To ja tez udziele konkretu i powiem ze mozna to napisac w WinAPI uzywajac takich funkcji jak CreateFile,WriteFile,ReadFile,struktury DCB,COMMSTAT i jeszcze kilku innych funkcji oraz struktur :lol:
Back to top
   
yaroo
Poziom 9
Poziom 9


Joined: 13 Jun 2003
Posts: 32

Post#9 08 Apr 2004 14:04   

Re: Obsluga rs232


jesli dobrze mi sie wydaje to w pytaniu jest
Quote:
W jakim jezyku programowania jest najprościej napisać obsługe rs232?

no i wedlug mnie jest to Delphi z komponentem cia Cport. i do strony o nim podalem linka
A ty co zrobiles?? Poleciles ksiazke
Quote:
RS 232C praktyczne programowanie od pascala i C++ do Delphi i Buildera

Kup ksiazke i sobie poczytaj
oraz korzystanie z
Quote:
WinAPI uzywajac takich funkcji jak CreateFile,WriteFile,ReadFile,struktury DCB,COMMSTAT i jeszcze kilku innych funkcji oraz struktur

to chyba nie jest konkretna informacja
a korzystanie z Winapi wcale najlatwiejszym sposobem nie jest!!
mysl Fantom
pozdrawiam

a goldfire prosze o blizsze informacje. a dokladniej do czego chcialby wykorzystac ten port.
Back to top
   
fantom
Poziom 22
Poziom 22


Joined: 23 Mar 2003
Posts: 1659
Location: Łódź

Post#10 08 Apr 2004 14:39   

Re: Obsluga rs232


Jezu nastepny klotliwy.Sieja ich czy jak ?
Niech ze i bedzie Delphi co mnie to interesuje,tyle opinii co osob.Jeden pisze w Basicu,drugi w C/C++,trzeci w Pascalu a jeszcze inny w Fortranie.Ksiazki nie trzeba kupowac tylko zassac z elki i jest to najlepsze kompendium wiedzy o porcie szeregowym z jakim sie spotkalem (a spotkalem ich troche).WinAPI moze i najprostsze nie jest ale ma jedna wielka zalete:mozna z niego korzystac we wszystkich jezykach a do tego NIGDY nie ma zadnych problemow z uruchamianiem go na Windach bo do tego sluzy.
Quote:
a goldfire prosze o blizsze informacje. a dokladniej do czego chcialby wykorzystac ten port.

Coz no MYŚLĘ ze napewno do transmisji danych :lol:

Aha no i MYŚLĘ ze chodzilo ci o komponent CiaComPort.
Back to top
   
nooa
Poziom 7
Poziom 7


Joined: 09 Jan 2003
Posts: 21

Post#11 09 Apr 2004 18:15   

Re: Obsluga rs232


Mógły mi ktoś pomów w moim problemie związanym z wysłąnie 8 bitów przez TXD przy pomocy delphi. Proszę o konkretny przykład.
Back to top
   
Google

Google Adsense


Post# 09 Apr 2004 18:15   





Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#12 09 Apr 2004 21:47   

Re: Obsluga rs232


ja mam pytanko odnośnie pascala - wszystko pięknie, tylko jak ustawić "1"
na RTS, tak ,żeby zasilać układ bezpośrednio z kompa - bez zasilacza lub baterii..
Back to top
   
BoskiDialer
Poziom 22
Poziom 22


Joined: 28 Nov 2003
Posts: 1533
Location: Żory

Post#13 10 Apr 2004 10:09   

Obsluga rs232


1 na RTS:
Ustawiasz bit 1 w porcie MCR (base+4).. w pascalu to będzie wyglądać tak:
port[$3f8+4]:=port[$3f8+4] or $02;

a wyłączenie:
port[$3f8+4]:=port[$3f8+4] and (not $02);
Back to top
   
Google

Google Adsense


Post# 10 Apr 2004 10:09   





Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#14 10 Apr 2004 10:33   

Re: Obsluga rs232


Wielkie dzięki ..
Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#15 10 Apr 2004 10:54   

Re: Obsluga rs232


Jeszcze jedno pytanko:
Da się ustawiac 1 na jakichś inny liniach ??
chodzi mi o włąściwości podobne do RTS'a ??
Back to top
   
fantom
Poziom 22
Poziom 22


Joined: 23 Mar 2003
Posts: 1659
Location: Łódź

Post#16 10 Apr 2004 11:04   

Re: Obsluga rs232


centipede wrote:
Jeszcze jedno pytanko:
Da się ustawiac 1 na jakichś inny liniach ??
chodzi mi o włąściwości podobne do RTS'a ??

DTR (linia nr 4), a jezeli chodzi o ten dostep "portowy" to pamietaj ze w xp-ku trzeba to robic troche inaczej.
Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#17 10 Apr 2004 11:12   

Re: Obsluga rs232


fantom wrote:
pamietaj ze w xp-ku trzeba to robic troche inaczej.

ja mam Slackware ..
jak zrobić to z DTR'em ??
w pascal'u ??
wiem ,że może jestem nudny , ale nigdy nie programowałem portów I/O ..
Back to top
   
fantom
Poziom 22
Poziom 22


Joined: 23 Mar 2003
Posts: 1659
Location: Łódź

Post#18 10 Apr 2004 11:18   

Re: Obsluga rs232


Nigdy mi nie przyszlo do glowy zeby obslugiwac RS-a portowo wiec nie pamietam.Jesli to Linux to sa tam specjalne biblioteki do portu szeregowego (chyba termios ?!)
Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#19 10 Apr 2004 13:56   

Re: Obsluga rs232


BoskiDialer, pomożesz jeszcze raz ??
jak ustawić "1" na DTR ??
Back to top
   
yaroo
Poziom 9
Poziom 9


Joined: 13 Jun 2003
Posts: 32

Post#20 10 Apr 2004 16:22   

Re: Obsluga rs232


jak juz tak sie uczepiliscie zasilania ukladow z portu rs232 to jaki prad maksymalnie mozna z niego pociagnac??
a jaki z usb??
Back to top
   
fantom
Poziom 22
Poziom 22


Joined: 23 Mar 2003
Posts: 1659
Location: Łódź

Post#21 10 Apr 2004 16:27   

Re: Obsluga rs232


Z USB okolo 500mA, z RS-a....hmmm jakies kilkanascie miliamperow z DTR i RTS razem wzietych.Natomiast na RS-ie jest -12 jako "1" a +12 jako "0" wiec trzeba z tym uzwazac a na USB klasycznie +5.
Back to top
   
BoskiDialer
Poziom 22
Poziom 22


Joined: 28 Nov 2003
Posts: 1533
Location: Żory

Post#22 11 Apr 2004 16:50   

Obsluga rs232


bit nr 0 portu MCR - DTR
bit nr 1 portu MCR - RTS

1 na DTR port[$3f8+4]:=port[$3f8+4] or $01;
0 na DTR port[$3f8+4]:=port[$3f8+4] and (not $01);

1 na RTS port[$3f8+4]:=port[$3f8+4] or $02;
0 na RTS port[$3f8+4]:=port[$3f8+4] and (not $02);
Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#23 13 Apr 2004 16:57   

Re: Obsluga rs232


Dzięki..za info o DTR..
Pozdrawiam..
Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#24 27 Apr 2004 21:24   

Re: Obsluga rs232


Nie chciałem zakładać nowego postu, ponieważ tu jest już dużo powiedziane na temat rs232 i pascala, napisałbym wcześniej , ale chwilowo nie miałem dostępu do internetu ..
Pytanko:
Jak w pascalu zmienić baudrate ??
Back to top
   
BoskiDialer
Poziom 22
Poziom 22


Joined: 28 Nov 2003
Posts: 1533
Location: Żory

Post#25 28 Apr 2004 13:54   

Re: Obsluga rs232


fragment mojego kodu:
Code:
const com=$3f8;
var i:word;z:longint;
begin
(...)
  z:=38400; { prędkość transmisji }
  i:=round(115200/z); { obliczenie wartości licznika }
  port[com+3]:=port[com+3] or $80; { wejście w tryb ustawiania prędkości }
  port[com]:=i and $ff; {wpisanie prędkości}
  port[com+1]:=i shr 8;
  port[com+3]:=port[com+3] and $7f; {wyjście z trybu ustawiania prędkości }
(...)
end.

Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#26 28 Apr 2004 20:17   

Re: Obsluga rs232


Quote:

i:=round(115200/z);

115200 jest stałą (stosuje się to do każdej prędkości) ??
Dzięki ,widzę ,że jesteś mocno wtajemniczony w obsługę rs'a, szczerze mówiąc , to byłem przekonany ,że to właśnie Ty mi odpowiesz ..
Back to top
   
elektryk
Poziom 26
Poziom 26


Joined: 25 Apr 2002
Posts: 11092

Post#27 29 Apr 2004 01:03   

Re: Obsluga rs232


centipede wrote:
Quote:

i:=round(115200/z);

115200 jest stałą (stosuje się to do każdej prędkości) ??
Tak, dla wartości 115kbit musi wyjść 1 dla mniejszych prędkosci odpowiednio więcej.
Back to top
   
Google

Google Adsense


Post# 29 Apr 2004 01:03   





Back to top
   
centipede
Poziom 15
Poziom 15


Joined: 23 Mar 2004
Posts: 236

Post#28 29 Apr 2004 07:08   

Re: Obsluga rs232


ostatnie już naprawdę pytanko :
jak odsługuje się RXD ??
Back to top
   
BoskiDialer
Poziom 22
Poziom 22


Joined: 28 Nov 2003
Posts: 1533
Location: Żory

Post#29 29 Apr 2004 13:44   

Obsluga rs232


jeśli do portu $3f8 wpiszesz jakąś daną, to zostanie ona wysłana przez kabel TxD.. jeśli dane zostaną odebrane z linii RxD to odczyt portu $3f8 zwróci tą właśnie daną..
tz:
Zapis $3f8 - Wysłanie danych..
Odczyt $3f8 - Odczyt odebranych danych..
jeśli w porcie $3f8+5 (LSR) jest ustawiony bit:
0 - odebrano bajt, można go odczytać z portu $3f8
1 - błąd nieodebranej ramki
2 - błąd parzystości
3 - błąd ramki
5 - bufor nadajnika pusty (jeśli ten bit=1 można wpisać dane do portu $3f8)

115200 to ja tak napisałem w skróceniu....
w rzeczywistości powinno być 1843200/16
(prędkość kwarcu uartu przez preskaler)
ale dla skrócenia ja napisałem tak a nie inaczej, gdyż wynik jest taki sam
Back to top
   
euromatic
Poziom 17
Poziom 17


Joined: 30 Aug 2003
Posts: 440
Location: W-wa

Post#30 29 Apr 2004 22:49   

Re: Obsluga rs232


"W jakim jezyku programowania jest najprościej napisać obsługe rs232?
Na PC?"
najprościej to będzie w VB6.

MSComm1.Output = "To jest tekst do wysłania" & vbCr


odbiór:

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
strWej = MSComm1.Input
strDana = strDana & strWej
If strWej = vbCr Then
Ciag = strDana
End If
End Select
End Sub



a jak ustawić koma?

MSComm1.CommPort = 1 'ustawienie numeru Comma
MSComm1.Settings = "9600,n,8,1" 'parametry portu
Debug.Print "----------"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
MSComm1.InputLen = 1


pozdrawiam
Back to top
   
Post new topic  This topic is locked      Main Page -> Forum Index -> Programming Generally -> Sterowanie portem COM. RS232
Page 1 of 3 Go to page 1, 2, 3  Next
Similar topics
Visual Studio 2005 Problem z portem COM w C# na PPC2003 (2)
Komunikacja z portem COM - opóźnienia (5)
Sterowanie AVR portem USB pomocy ostatecznie rs232 (3)
Sterowanie portem COM pod DOSem (7)
[Visual Basic] Sterowanie portem COM. (2)
[Java]Przyciski,zarządzanie portem rs232/usb,skąd materiały? (2)
[Visual Basic] Sterowanie portem COM. (5)
[C++] Sterowanie portem COM. (4)
[C++] Sterowanie portem COM. (2)
[C++] Sterowanie portem COM. (8)

Page generation time: 0.174 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed