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
|
|