| Author |
Message
|
goldfire Poziom 13

Joined: 06 Oct 2003 Posts: 141 Location: Toruń
|
#1
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

Joined: 27 Aug 2002 Posts: 2263 Location: Śląsk
|
#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

Joined: 25 Apr 2003 Posts: 497 Location: okolice Tarnowa
|
#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

Joined: 03 Feb 2003 Posts: 92
|
#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

|
#
06 Apr 2004 14:56 |
|
|
|
|
|
| Back to top |
|
 |
BoskiDialer Poziom 22

Joined: 28 Nov 2003 Posts: 1533 Location: Żory
|
#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

Joined: 23 Mar 2003 Posts: 1659 Location: Łódź
|
#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

Joined: 13 Jun 2003 Posts: 32
|
#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

Joined: 23 Mar 2003 Posts: 1659 Location: Łódź
|
#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

Joined: 13 Jun 2003 Posts: 32
|
#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

Joined: 23 Mar 2003 Posts: 1659 Location: Łódź
|
#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

Joined: 09 Jan 2003 Posts: 21
|
#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

|
#
09 Apr 2004 18:15 |
|
|
|
|
|
| Back to top |
|
 |
centipede Poziom 15

Joined: 23 Mar 2004 Posts: 236
|
#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

Joined: 28 Nov 2003 Posts: 1533 Location: Żory
|
#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

|
#
10 Apr 2004 10:09 |
|
|
|
|
|
| Back to top |
|
 |
centipede Poziom 15

Joined: 23 Mar 2004 Posts: 236
|
#14
10 Apr 2004 10:33 Re: Obsluga rs232 |
|
|
|
Wielkie dzięki ..
|
|
| Back to top |
|
 |
centipede Poziom 15

Joined: 23 Mar 2004 Posts: 236
|
#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

Joined: 23 Mar 2003 Posts: 1659 Location: Łódź
|
#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

Joined: 23 Mar 2004 Posts: 236
|
#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

Joined: 23 Mar 2003 Posts: 1659 Location: Łódź
|
#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

Joined: 23 Mar 2004 Posts: 236
|
#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

Joined: 13 Jun 2003 Posts: 32
|
#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

Joined: 23 Mar 2003 Posts: 1659 Location: Łódź
|
#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

Joined: 28 Nov 2003 Posts: 1533 Location: Żory
|
#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

Joined: 23 Mar 2004 Posts: 236
|
#23
13 Apr 2004 16:57 Re: Obsluga rs232 |
|
|
|
Dzięki..za info o DTR..
Pozdrawiam..
|
|
| Back to top |
|
 |
centipede Poziom 15

Joined: 23 Mar 2004 Posts: 236
|
#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

Joined: 28 Nov 2003 Posts: 1533 Location: Żory
|
#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

Joined: 23 Mar 2004 Posts: 236
|
#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

Joined: 25 Apr 2002 Posts: 11092
|
#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

|
#
29 Apr 2004 01:03 |
|
|
|
|
|
| Back to top |
|
 |
centipede Poziom 15

Joined: 23 Mar 2004 Posts: 236
|
#28
29 Apr 2004 07:08 Re: Obsluga rs232 |
|
|
|
ostatnie już naprawdę pytanko :
jak odsługuje się RXD ??
|
|
| Back to top |
|
 |
BoskiDialer Poziom 22

Joined: 28 Nov 2003 Posts: 1533 Location: Żory
|
#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

Joined: 30 Aug 2003 Posts: 440 Location: W-wa
|
#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 |
|
 |