logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

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

marthinek 19 Lut 2012 18:48 3046 3
  • #1 10568847
    marthinek
    Poziom 10  
    Posty: 17
    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?

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #2 10569542
    ostrytomasz
    Poziom 25  
    Posty: 494
    Pomógł: 82
    Ocena: 218
  • #3 10569588
    marthinek
    Poziom 10  
    Posty: 17
    Wielkie dzięki. Problem rozwiązany.
  • #4 13285206
    Lukasz_wat
    Poziom 10  
    Posty: 35
    Ocena: 13
    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
REKLAMA