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


[Visual C++] Komunikacja przez port COM.


Post new topic  This topic is locked      Main Page -> Forum Index -> Programming Generally -> Beginners Programming -> [Visual C++] Komunikacja przez port COM.
Author
Message
ArtKar
Poziom 14
Poziom 14


Joined: 23 Jan 2002
Posts: 155

Post#1 Post from the author of the topic 14 Jan 2004 02:18   

[Visual C++] Komunikacja przez port COM.


Witam,
wkurzlem sie ostatnimi czasy na visual basic bo programy w nim napisane, ktore wykonywaly operacje na plikach strasznie wolno dzialaly...

Zabralem sie za Visual C++ i wszystko jest OK, tylko w jaki sposob z tego czegos obslugiwac COM'a??

Prosze o jakies gotowe procedury dzialajace bezposrednio lub poprzez kontrolke MSComm...

Chodzi mi o wysylanie i odbieranie danych z uP (dane jednobajtowe)...

dziekuje i pozdrawiam, ArtKar

Temat zamykam. - arnoldziq
Back to top
   
elektryk
Poziom 26
Poziom 26


Joined: 25 Apr 2002
Posts: 11092

Post#2 14 Jan 2004 02:24   

Re: COM PORT w VC++


Na elektrodzie jest skan ksiażki po polsku z wytłumaczoną całą komunikacją poprzez API windows.
Back to top
   
Google

Google Adsense


Post# 14 Jan 2004 02:24   





Back to top
   
Quebec
Poziom 8
Poziom 8


Joined: 21 Sep 2002
Posts: 25

Post#3 16 Jan 2004 15:24   

Re: COM PORT w VC++


Witam.
Tutaj znajdziesz gotową klasę obsługującą COMa: http://codeguru.earthweb.com/network/CSerialPort.html.

Polecam dokładne zapoznanie się ze stroną: codeguru
znajdziesz na niej dużo ciekawych klas...

Pozdrawiam
Quebec
Back to top
   
ArtKar
Poziom 14
Poziom 14


Joined: 23 Jan 2002
Posts: 155

Post#4 Post from the author of the topic 18 Feb 2004 22:48   

Re: COM PORT w VC++


witam...
meczylem sie caly czas z tym serialport'em w c++ i rozgryzlem to w koncu.. tak mi sie przynajmniej wydaje....

no wiec tak:
napisalem program, na porcie zalozylem loopback'a i wyslalem dana, dana wrocila, wszystko OK...
chce napisac program, aby prozumiewal sie z mikrokontrolerem.. napisalem do uP programik w BASCOMie, ktory odbiera dana i natychmiast ja wysyla... dana jednak juz nie zostaje odebrana przez program na PC :( wyskakuje timeout(zmienialem je wartosc)...
prgoram w uP przepisalem tak, ze wysyla caly czas taka sama dana, program w C++ go nie odbiera :(

Robilem rowniez testy na Hyperterminalu....tutaj dziala wszystko OK...komunikuje sie bez problemu

Co moge miec namieszane w tym wszystkim??
port w c++ sadze ze skonfigurowalem i otworzylem poprawnie(uzylem tego czegos z www.codeguru.com)

dziekuje i pozdrawiam, ArtKar
Back to top
   
BoskiDialer
Poziom 22
Poziom 22


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

Post#5 18 Feb 2004 23:31   

Re: COM PORT w VC++


Skoro VC++ niedziała poprawinie a HyperTerminal działa...
to sprubój połączyć (na kablu COM) ze sobą sygnały:
- CTS z RTS
- RTS z DSR
(mogłem pomylić sie w oznaczeniach ponieważ pisałem z pamięci..)
albo po prostu piny na złączu DB9:
- 2 z 3
- 7 z 8
....
Czasami programy wykorzystują kontrole przepływu danyh..
Back to top
   
Google

Google Adsense


Post# 18 Feb 2004 23:31   





Back to top
   
elektryk
Poziom 26
Poziom 26


Joined: 25 Apr 2002
Posts: 11092

Post#6 18 Feb 2004 23:56   

Re: COM PORT w VC++


A próbowałeś skonfigurować handshaking? Timeouty są to po żeby tak działać, można z nich zrezygnować wykonując operacje blokujące, ale z reguły znacznie gorzej to działa.
Back to top
   
Google

Google Adsense


Post# 18 Feb 2004 23:56   





Back to top
   
ArtKar
Poziom 14
Poziom 14


Joined: 23 Jan 2002
Posts: 155

Post#7 Post from the author of the topic 19 Feb 2004 00:32   

Re: COM PORT w VC++


7 z 8 mam zwarte, 2 z 3 nie moge bo to jest wlasnie RX i TX... jak zewre je to powstanie loopback...

Sprawdzalem co to jest handshaking... w jaki sposob go skonfigurowac i czy konieczne sa wtedy zmiany w oprogramowaniu w uP ??

W HyperTerminal'u wszystko dziala, wiec nie wiem co jest nie tak... jako program testowy na PC uzylem ten demonstracyjny ze strony www.codeguru.com (na loopback'u dziala), a na uP z programem ktory powinien emulowac loopback'a niestety nie :(

Oto zrodlo tego co jest w uP:
Code:

Dim A As Byte

Open "com3.1:9600" For Output As #1
Open "com3.0:9600" For Input As #2

Do
   Get #2 , A
   Put #1 , A
Loop

Close #1
Close #2
End

Back to top
   
elektryk
Poziom 26
Poziom 26


Joined: 25 Apr 2002
Posts: 11092

Post#8 19 Feb 2004 01:09   

Re: COM PORT w VC++


ArtKar wrote:
Sprawdzalem co to jest handshaking... w jaki sposob go skonfigurowac i czy konieczne sa wtedy zmiany w oprogramowaniu w uP ??
No można, ale prościej jest go wogóle wyłączyć ;). Musisz tak przekonfigurować port szeregowy aby ignorował sygnały handshakingu.
Back to top
   
ArtKar
Poziom 14
Poziom 14


Joined: 23 Jan 2002
Posts: 155

Post#9 Post from the author of the topic 19 Feb 2004 01:32   

Re: COM PORT w VC++


haaa, tylko jak go wylaczyc ? ;) hehe, jak chodzi o sprawy zwiazane z portem to jestem nowicjuszem :D
Back to top
   
BoskiDialer
Poziom 22
Poziom 22


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

Post#10 19 Feb 2004 11:25   

Re: COM PORT w VC++


Sory.. pomyliło mi sie... połącz ze sobą piny 4 i 6...

Quote:
na porcie zalozylem loopback'a i wyslalem dana, dana wrocila, wszystko OK...

Quote:
Robilem rowniez testy na Hyperterminalu....tutaj dziala wszystko OK


Sprawdź czy masz dobrą prędkość ustawioną. bo z tego co wyżej
napisałeś to wnioskuje że albo masz źle skonfigurowaną prędkość..
albo w transmisji występuje bit parzystości który dla mikrokontrolera
może oznaczać błąd transmisji.. spróbuj wgrać na mikrokontroler taki program:

Code:
dim a as bit
do
  a = P1.0
  P1.1 = a
loop


Będzie on powodował loopback z poziomu programu mikrokontrolera..


p.s. zmień timeout na 5000...
Back to top
   
Google

Google Adsense


Post# 19 Feb 2004 11:25   





Back to top
   
ArtKar
Poziom 14
Poziom 14


Joined: 23 Jan 2002
Posts: 155

Post#11 Post from the author of the topic 20 Feb 2004 18:46   

Re: COM PORT w VC++


...sprobowalem tym sposobem no i jest tak, ze w hyperterminalu dziala, a z C++ nie dziala :)

No ale wlasnie cos przy tym zauwazylem:
mam podlaczony komputer do uP przez MAX232... jak zewre wejscie RX i TX MAXa to dziala w hyperterminalu i z C++, jak za MAXem to tylko z hyperterminala...

Jaka wiec moze byc roznica w dzialaniu pomiedzy tymi dwoma programami??

Sprobuje jeszcze zerknac w aplikacje MAX'a, bo ja wykorzystalem gotowy uklad, ktory kiedys zrobilem pod flashowanie telefonikow, gdzie rowniez byl RX i TX wymagany

P.S. predkosc i parzystosc mam ustawiona OK

Dziekuje ;-), Pozdrawiam, ArtKar
Back to top
   
ArtKar
Poziom 14
Poziom 14


Joined: 23 Jan 2002
Posts: 155

Post#12 Post from the author of the topic 21 Feb 2004 00:46   

Re: COM PORT w VC++


DZIEKUUUUUJEE WAAAAAAM WSZYSTKIIIM ZA ZAINTEREEESOOWANIEE I POMOC:)

Udalo sie :) Juz dziala:)

A teraz takie pytanko male jeszcze??
w czasie transmisji potrzebuje aby program odczekal chwilke...
Jak moge w C++ zrobic cos w stylu 10ms pauzy??

Chodzi o to, ze PeCet musi nadac troche danych, nastepnie odczekac powiedzmy 10ms i znowu nadac...

Dziekuuuje :)
Back to top
   
fantom
Poziom 22
Poziom 22


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

Post#13 23 Feb 2004 20:02   

Re: COM PORT w VC++


Zainstaluj sobie timer funkcja SetTimer i obsluguj komunikat WM_TIMER w aplikacji.
Back to top
   
Post new topic  This topic is locked      Main Page -> Forum Index -> Programming Generally -> Beginners Programming -> [Visual C++] Komunikacja przez port COM.
Page 1 of 1
Similar topics
Zasilanie diodami przez port com. (6)
Sterowanie PC przez port COM (5)
[C#] Komunikacja ze sterownikiem przez port szeregowy (6)
Visual studio, wysyłanie wartości hex na port com (4)
Komunikacja poprzez port COM (9)
Visual c++ port COM i odbieranie danych (1)
Visual Basic, port COM i błąd... (3)
Ciag danych przez port com (2)
Programowanie AVR przez port COM (29)
Odczyt danych przez port COM (3)

Page generation time: 0.083 seconds


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