Elektronika.lt
 2025 m. birželio 28 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2025 06 28, 15:29. Visos datos yra GMT + 2 valandos.
 Forumas » Programavimas » RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2011 11 22, 14:52 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Bopis
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Sveiki gal galėtumėt padėt su kodu? Idėja tokia kad užloopinta RS232 jungtis siunčia info ir gauna, kiek išmėginau taip veikia, bet atvaizduot info nesigauna, meta vieną simbolį ir nieko daugiau, gal yra būdas iš buferio į Ekraną info išvest?

Kodas:

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <conio.h>
#include <windows.h>
int main(int argc, char* argv[])
{
    char INBUFFER[100];
    char OUTBUFFER[10];
    int n;
    DWORD        bytes_read    = 0;    // Number of bytes read from port
    DWORD        bytes_written = 0;    // Number of bytes written to the port
    HANDLE       comport      = NULL;
 int   bStatus;
    DCB          comSettings;     
    COMMTIMEOUTS CommTimeouts;
    strcpy(&OUTBUFFER[10], "Labas \n\r\0");
    // Open COM port
    if ((comport =
         CreateFile("\\\\.\\COM20",             
                    GENERIC_READ | GENERIC_WRITE,
                    0,                       
                    NULL,                     
                    OPEN_EXISTING,             
                    FILE_ATTRIBUTE_NORMAL,
                    NULL)) == INVALID_HANDLE_VALUE)
    {
        // error processing code goes here
    }
 
    CommTimeouts.ReadIntervalTimeout         = 100;
    CommTimeouts.ReadTotalTimeoutMultiplier  = 100;
    CommTimeouts.ReadTotalTimeoutConstant    = 100;
    CommTimeouts.WriteTotalTimeoutMultiplier = 100;
    CommTimeouts.WriteTotalTimeoutConstant   = 100;
    bStatus = SetCommTimeouts(comport,&CommTimeouts);
   
   
    GetCommState(comport, &comSettings);
    comSettings.BaudRate = 2400;
    comSettings.StopBits = ONESTOPBIT;
    comSettings.ByteSize = 8;
    comSettings.Parity   = NOPARITY;
    comSettings.fParity  = FALSE;
    bStatus = SetCommState(comport, &comSettings);
   
    while(!kbhit())
    {
  bStatus = WriteFile(comport,       
       &OUTBUFFER,      // Outgoing data
       10,              // Number of bytes to write
       &bytes_written,  // Number of bytes written
       NULL);
       
        bStatus = ReadFile(comport, 
                &INBUFFER,            // Incoming data
                100,                  // Number of bytes to read
                &bytes_read,          // Number of bytes read
                NULL);
           
          printf(" %c " , '&INBUFFER');
    }
    CloseHandle(comport);
 return 0;
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2011 11 22, 15:12 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vvv2
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
- jau rašiau, kad tavo problemos ne spausdinime, o laiko diagramose. Tu suki amžiną ciklą ir vis tą patį perdavinėji "ant viršaus", o tekstinę eilutę reik spausdinti su "%s" formatu, nes "%c" skirtas vienam simboliui.

pasiūlymai:

a) į ciklą įdėk kokiį delay() arba visai be ciklo perduok-priimk.
b) gali mėginti perdavinėti eilutę tik po vieną simbolį.
c) naudokis DEBUG'eriu ir pažiūrėk kas yra buferyje.


Arrow

Kodas:
strcpy(&OUTBUFFER[10], "Labas \n\r\0");


- dar tu negerai kopijuoji, o būtent už masyvo ribų, pradedant 10'u elementu.. turėtų būti:

Kodas:
strcpy(&OUTBUFFER[0], "Labas \n\r\0");


Arrow
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2011 11 22, 16:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Bopis
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Ačiū, ne taip buvau supratęs strcpy funkciją.

Radau paprastą sprendimą:

Kodas:

cout << INBUFFER << endl;


Dar vienas klausimas, ar gali atsirast info praradimas jei prie loop prijungiu kelis LED, perdavimui vizualizuoti? Prieš prijungiant LED dirbant su HyperTerminalu raidės grįžta nepakitusios, o su LED vos kas kelinta tik tvarkingai grįžta, manau dar prie to prisidėjo netvarkingas litavimas...
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2011 11 22, 17:32 Pranešti apie taisyklių pažeidimą Atsakyti su citata
caca
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
blogai gryzta info su ledais, nes perkrauni grandine... Be to ar jungi ledams nuosekliai varzas? Ar itampos impulsai nenukrenta zemiau plius minus 3,5V?

_________________
Nieko taip lengvai nedaliname, kaip patarimus...
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2011 11 22, 17:33 Pranešti apie taisyklių pažeidimą Atsakyti su citata
caca
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
jei jau reikia tu ledu-junk juos per kazkokius buferius arba idek dideles varzas, kad vos vos sviestu-maziau apkrausi.

_________________
Nieko taip lengvai nedaliname, kaip patarimus...
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2011 11 22, 17:49 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Bopis
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Tikslių matavimų nedariau, reikės osciloscopą pasijungt...

Taip ir galvojau, kad grandinė perkrauta, esmė tame, kad dabar esu Suomijoj, tai reik susirast laiko laboratorijoj savų įrankų neturiu čia ir reikia pirkt komponentus kurie čia nesveikai brangūs... 3 ledai, laido truputį ir Kempų, ir RS232 lizdą - 11e kainavo Very Happy ...

Manau užteks, priežastį žinau, dalyką atsiskaitysiu ir užteks... Ačiū už pagalbą Wink
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2013 06 30, 13:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
adomas kaunas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sveiki norėjau paklausti. ar šitas kodas veikia su virtualiu com portu? tai yra su konverteriu iš USB į RS232. Ačiū
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2013 06 30, 22:46 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Bopis
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Taip veikia, aš pats taip ir darau
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2013 07 01, 10:26 Pranešti apie taisyklių pažeidimą Atsakyti su citata
adomas kaunas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Puiku. Kodą rašau c sintakse. nes labiau mikrovaldikliams pritaikytą Smile
O kaip čia randamas fizinis porto adresas? CreateFile("\\\\.\\COM20", čia suprantu sukuriamas naujas lėjeris, per kuri programa netiesiogiai gauna ir siunčia duomenys.
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2013 07 01, 11:00 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Bopis
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Šitas kodas yra Windows`ams pritaikytas ir kurtas, naudoja windows sukurtą biblioteką. Ištikrųjų tai nepamenu iš kur tą kodą traukiau, bet apie CreateFile funkciją yra aprašyta Visual C++ MSDN svetainėj:

[http://msdn.microsoft.com/en-us/library/ff802693.aspx]

Panašiai ir čia, realiai tai šitas kodas jau kaip ir atgyvenęs, reiktų vadovautis naujais Windows standartais Smile

Kaip ir minėjau čia yra Windows biblioteka sukurta Microsoft tam, kad nereiktų naudot bios.h bibliotekos serialinėm jungtim Windows platformoj. Jei programini mikrovaldiklius reiktų atitinkamai žiūrėt to mikrovaldiklio manualus ir pagal juos rašyt kodą (dažnu atveju mikrovaldikliai turi integruotą serialinę jungtį, todėl darbo būna labai mažai rašant kodą Smile[/url]
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2013 07 01, 11:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
adomas kaunas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
čia kodą noriu rašyti Windows'ams, info noriu apdoroti su savo parašytą programą, per hiperterminalą gaunu duomenis iš mikrovaldiklio. be to biblioteka bios.h jau nėra įtraukta į naujus IDE debugerius. ir ji tinkama tik fiziniam com protui, o ne virtualiam. virtualu nuskaito tai per usb, ir sukure failai vinduskai ir jis simuliuoje ta kom portą, ben taip suprantu
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2013 07 01, 13:39 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Bopis
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Rašyk pagal duotą Windows pavyzdį, šitas kodas jau manau atgyvena. Aš jį prieš pora metų suklijavau iš visokių forumų... Kompe jokio skirtumo ar C, ar ne...
 RS232 loopinimas ir info atkūrimas.. Pagalbos su C++ kodu :)
PranešimasParašytas: 2013 07 01, 14:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
adomas kaunas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Windosu duotas pavyzdys tai 95 metų Smile su tavo pvz. bandžiau paleisti, bet nesigavo į ekraną tik R simboli gražiną. bandysiu win. pvz užkurti.
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Football Training Kit
Football Training Equipment, Football Skills, Football Training
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama