FlightSim.CZ   Reklama  
CVARS - zrychlí vám tep...
> Nejste přihlášen Login
  Dnes je pondělí 13. 5. 2024, svátek má Servác Translate
ÚVOD
LETADLA
KRAJINY
AI PROVOZ
UTILITY
ČLÁNKY
FÓRUM
 Seznam příspěvků
ODKAZY
SCREENSHOTY
VIDEA
INZERCE
PLÁNOVÁNÍ LETŮ
VYHLEDÁVÁNÍ
O SERVERU
RSSRSS - fórum
RSSRSS - novinky
FacebookFacebook
MobileVerze pro PDA
Jak nakonfigurovat sériový port v C++ pro Arduino ? Jeden příspěvek | Celý strom
Jak nakonfigurovat sériový port v C++ pro Arduino ?   9. 9. 2015 / 09:57
kuknamys   
Takže co by neprogramátor jsem po přečtení mnoha zdrojů a asi třech dnech pokusů opět v koncích. Pokud by měl někdo nějaký nápad, velmi bych to uvítal. Problém je následující.

Naučil jsem se otevřít file jak pro vstup, tak i pro výstup pro komunikaci přes sériovou linku RS232 s Arduinem. Zjistil jsem, že po zaslání programu pro Arduino mi můj Céčkový program nekomunikuje resp. vytuhne, dokud ve vývojovém prostředí Arduina neotevřu program pro sériovou komunikaci. Pak vše běží v pořádku. Tedy jsem si to laicky představoval tak, že program pro sériovou komunikaci spuštěný z Arduina nakonfiguruje příslušný RS232 na správné hodnoty a potom ho mohu používat i ve svém Céčku.

Tudíž jsem se přes SetCommState snažil nastavit správné hodnoty a předpokládal, že vše začne fungovat. Nazačlo, spuštěný program v C++ zase vytuhne. Zde je zdroják jak se snažím nakonfigurovat port :

******************************************************************
DCB PortDCB;
// Initialize the DCBlength member.
PortDCB.DCBlength = sizeof (DCB);

// Get the default port setting information.
GetCommState ("\\\\.\\COM11", &PortDCB);

// Change the DCB structure settings.
PortDCB.BaudRate = 9600; // Current baud
PortDCB.ByteSize = 8; // Number of bits/byte, 4-8
PortDCB.Parity = NOPARITY; // 0-4=no,odd,even,mark,space
PortDCB.StopBits = ONESTOPBIT; // 0,1,2 = 1, 1.5, 2


// Configure the port according to the specifications of the DCB
// structure.
SetCommState ("\\\\.\\COM11", &PortDCB);
*********************************************************************

Ještě zde uvedu řádek který funguje (po postrčení komunikačním programem Arduina), kdy otevírám určitý soubor pro čtení na COM11

comportIN02 = fopen("\\\\.\\COM11", "r");

***********************************************************************

Takže buď je špatný předpoklad že spuštěním programu pro sériovou komunikaci z programu Arduina konfiguruje RS232 proměnné PC na právné hodnoty, nebo tento předpoklad je správný a já pouze uvedeným zdrojákem špatně konfiguruji požadované hodnoty. Nebo je brouk jinde ?

Program nahraný do Arduina má nastavené baudy na 9600.

Dokáže mě někdo postrčit ?

Díky moc

P.S. Pro zajímavost kdo to neví tak se podívejte na definici COM11 - "\\\\.\\COM11" - to tam prý musí být pro obsluhu portů s vyšším číslem než 9 a zdá se že to funguje. Apoň něco jsem včera vygooglil doufám že správně. Jinak si totiž s vyššími čísly portů ani neškrtnete
 

Jak nakonfigurovat sériový port v C++ pro Arduino ?   10. 9. 2015 / 06:11
Toomitsch
Tondemu jsi psal?
 

Jak nakonfigurovat sériový port v C++ pro Arduino ?   10. 9. 2015 / 07:28
kuknamys   
Nejdřív zkusím fórum a teprve v případě krajní nouze adresně otravuji členy fóra o kterých vím, že by mi byly schopní poradit. Ono to zatím šlape s tou aktivací COMu přes prostředí Arduina, jen jak budou Arduina přibývat tak to bude otravné po nastartování PC všechno projíždět.

No a potom kdyžtak budu zase nárazově po pár týdnech a měsících projíždět google a dolovat a zkoušet a dolovat a zkoušet . . . Jak jsem říkal jednomu pérákistovi, který byl u mě na návštěvě naposled - někdy trvá nějaké to vyřešení i několik let.

Není to fatální zásek kvůli, kterému bych nemohl dál, jen drobná nepříjemnost. A tak si svoje "tři přání", které jsem si u některých místních dobrých duší stejně už dávno vyčerpal (a bez jejich rad bych často opravdu nevěděl jak dál pokračovat - na dálku jim znovu a znovu děkuji ) zkusím schovat pro případ krajní nouze

Stejně je to to ale radost, když to zvolna roste pod rukama

Ale samozřejmě díky za odpověď
44945 B / 750 x 421 / 150831e.JPG
 

Jak nakonfigurovat sériový port v C++ pro Arduino ?   10. 9. 2015 / 08:25
Toomitsch
Mi vyprávěj Tonde by už mohl o mně napsat knížku

 

Jak nakonfigurovat sériový port v C++ pro Arduino ?   14. 9. 2015 / 21:24
tonde   
netuším co přesně máš na mysli, ale obvyklý problém arduina při komunikaci s PC je to, že Arduino prostě písidlo zahltí, takže do loopu programu arduina dej na jeho konec zpoždění, stačí i milisekunda, tedy
delay(1);
zkus jít až do 100 a sleduj, či se změní chování. Pokud ne, písni mi na tlamoknize do SZ nebo mail, uveď i jakou desku máš Arduina, event šoupni do mailu i sketch pro Aduino i softík pro PC
 

Jak nakonfigurovat sériový port v C++ pro Arduino ?   14. 9. 2015 / 22:16
kuknamys   
Díky za odpověď. Varianta zahlcení PC ze strany Arduina to domnívám se není, protože to posílá informace do PC jen když něco sepnu spínač nebo tlačítko. Takže se ozvu do SZ na tlamoknize a děkuji !
 

Jak nakonfigurovat sériový port v C++ pro Arduino ?   15. 9. 2015 / 09:07
tonde   
....proto chci vidět sketch do Arduina, protože právě seriový port dokáže zahltit jen tím, že v kuse posílá "nic"
 

Jak nakonfigurovat sériový port v C++ pro Arduino ?   15. 9. 2015 / 14:05
kuknamys   
Opět díky za info, vidíš tahle možnost by mě nenapadla. Takže vše nejdřív vyzkouším dle Tvé rady, případně posléze připravím a ozvu jak již jsem přes SZ informoval. Díky moc !
 

Gonzo
VWAC
L39.CZ
O serveru   |   Zveřejňování souborů ke stažení   |   Kontakt   |   © 1999-2024 FlightSim.CZ