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

Wysyłanie komend AT do BTM112 z mikrokontrolera ATmega32 - przykłady kodu

Dżefri 14 Sie 2017 15:08 1944 6
REKLAMA
  • #1 16641805
    Dżefri
    Poziom 5  
    Cześć:)

    Jestem początkującym w temacie więc prosiłbym o wyrozumiałość i cierpliwość. Pytanie moje brzmi jak wysyłać komendy AT do modułu z mikrokontrolera ATmega32 i odbierać rezultaty? Np. chciałbym wysłać z mikrokontrolera rozkaz do modułu aby wyszukał inne urządzenia bluetooth w okolicy a następnie przesłał wyszukane dane z powrotem do mikrokontrolera. Jakieś przykłady programu mile widziane:)
    Dzięki:)
  • REKLAMA
  • #2 16641841
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #3 16641904
    Dżefri
    Poziom 5  
    To znaczy mam program do obsługi UART na mikrokontrolerze. Komendy mogę wysyłać przez terminal w komuterze do modułu. Czyli jeżeli chce żeby mikrokontroler robił to za mnie to wystarczy dajmy na to: majac funkcję do wysyłania bajta USART_Transmit() napisać dla najprostrzej komendy "AT"
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    A w odpowiedzi jeski wszystko pojdzie dobrze mikrokontroler uzyska znaki z funkcji
    USART_Receive() 'O', 'K'
    I tylko tyle?
  • REKLAMA
  • Pomocny post
    #4 16641922
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #6 16642066
    Konto nie istnieje
    Konto nie istnieje  
  • #7 16647302
    Dżefri
    Poziom 5  
    Dzięki za biblio ;) Ja korzystam od dawna z bibliotek od Mirka z BlueBooka lekko przeze mnie zmodyfikowanych. Odświeżam temat bo jednak mam problem:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Otóż pomimo że wysyłam komendy EOL, komendy wysyłają się z dwoma grupami EOL tzn. np. "ATB?\r\n\r\n", w efekcie uzyskuje błędną odpowiedz "ERROR\r\n" W przypadku komendy dwuliterowej jak "AT\r\n" uzyskuje poprawna odpowiedz w stylu "OK\r\n". Dzieje się tak na pewno z tym podwójnym EOL, sprawdziłem to zarówno na wyświetlaczu LCD podłączonym do uP na którym wyświetlane są rezultaty komend jak i w terminalu RealTerm gdzie wysyłam komendy ręcznie. W zakładce "Send" RealTerm, gdy wpisuje w okno np. ATB?\r\n i wybieram "Send ASCII" wyskakuje ERROR. Gdy wpisuje w okno ATB i zaptaszkowuje +CR i +LF wyskakuje ERROR. Powyższe zachowanie nie dotyczy sytuacji gdy wysyłam komende AT, ona działa. Wszystkie komendy działają dopiero jak w czarnym polu wpisuje komendy z klawiatury, no ale nie o to chodzi...

    Chce wysyłać komendy z mikrokontrolera ale komendy zapewne nie działają przez to że wysyła się podwójny znak EOL chociaż jak widać na zdjęciu poniżej przy AT są 3 grupy EOL a i tak działa zatem problem jest dość szeroki...
    W każdym razie w programie widać że wysyłam go tylko raz EOL po każdej komendzie. Program jest tylko testowy ale starałem się żeby mimo to był czytelny.

    Poniżej zdjęcia z RealTerm (Proszę wybaczyć że zdjęcia telefonem ale print screen coś mi nawalił)





    Wysyłanie komend AT do BTM112 z mikrokontrolera ATmega32 - przykłady kodu Wysyłanie komend AT do BTM112 z mikrokontrolera ATmega32 - przykłady kodu Wysyłanie komend AT do BTM112 z mikrokontrolera ATmega32 - przykłady kodu Wysyłanie komend AT do BTM112 z mikrokontrolera ATmega32 - przykłady kodu

    Dodano po 1 [godziny] 42 [minuty]:

    Ktoś pomoże? Jak dla mnie to co się dzieje to kompletna anomalia. Nie rozumiem tego
REKLAMA