Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

C++ Builder 6 i RS232. Brak komunikacji z mikrokontrolerem

marthinek 19 Feb 2012 18:48 2647 3
  • #1
    marthinek
    Level 10  
    Witam.

    Nie mogę się uporać z nawiązaniem komunikacji między mikrokontrolerem a prostą aplikacją w C++ Builder 6.

    Po kolei:
    Na Atmega8 wgrany program do wysyłania po UART danych, transmisja skonfigurowana:
    115200 bps
    8 bitów danych
    1 bit stopu
    bez parzystości.

    Wszystko obsługiwane przez terminal śmiga prawidłowo, w oknie terminala dostaję to co uC sobie radośnie wysyła korzystając z układu FT232 i portu virtualnego COM25.

    Chciałem stworzyć aplikację odczytującą moje dane. Niestety już próba inicjalizacji portu kończy się niepowodzeniem.


    Okienko programu wygląda następująco:
    C++ Builder 6 i RS232. Brak komunikacji z mikrokontrolerem



    Program (bazujący na książce Pana Daniluka) działa na razie tak, że po wybraniu Checkbox'a: COM25 i naciśnięciu przycisku Otwórz Port powinna zostać nawiązana komunikacja z wybranym portem, niestety funkcja zgłasza błąd i wyświetla komunikat:
    "Niewłaściwa nazwa portu lub port jest aktywny."

    Poniżej kod programu z C++ Buildera. Gdzie mogę popełniać błąd?

    Code: cpp
    Log in, to see the code
  • #3
    marthinek
    Level 10  
    Wielkie dzięki. Problem rozwiązany.
  • #4
    Lukasz_wat
    Level 10  
    witam,

    Chciałbym podpiąć się pod temat.

    Robię aplikacje okienkową w Builder C++ do wizualizacji(wykresów) z akcelerometru trójosiowego ADXL345. Komunikacja uC z czujnikiem jest przez SPI, a uC przesyła to do PC przez RS232. I teraz chciałbym przejść do robienia programu na PC w Builder C++. I chciałbym, aby całą transmisją rządził komputer, i zamiast wysyłać dane cyklicznie co jakiś czas przez mikrokontroler, żeby to PC wysyłał zapytania o dane, i w odpowiedzi je otrzymywał. Czyli np. w mikrokontrolerze jeżeli dostane określone dane po UART (zapytanie o dane od strony PC), to wtedy mikrokontroler "pyta" czujnik o dane XYZ i wysyła je z powrotem do PC.
    Chciałbym zrobić taki program na swoje urządzenie, aby:
    - jeżeli dostane dane na uart, włącza się przerwanie
    - W przerwaniu sprawdzam dane jakie otrzymałem i powiedzmy jeżeli tą daną będzie znak '?', to wtedy wykonuje zapytanie do czujnika (czyli odczyt odpowiednich rejestrów z danymi)
    - odsyłam dane do PC

    Proszę o pomoc(wskazówki jak do tego podejść?, od czego zacząć?,gdzie sięgnąć)

    Pozdrawiam