Привет, гении. Пытаюсь связать AVR и Андроид через BLE. В качестве теста использую приложение "Bluetooth Terminal", что позволяет отправлять данные на блютуз модуль. Блютуз модуль BT05 - через UART отправляет на микроконтроллер данные. Отправляет хорошо - в качестве теста я связал TXD и RXD - получил то, что отправлял вот такой код (ATmega48, пытался еще с ATtiny2313 анологичный): #include #include #include #define F_CPU 1000000UL #define BAUD 9600 #define MY_UBRR ((F_CPU / 16 / BAUD) - 1) void USART_Init() { UBRR0H = (uint8_t)(MY_UBRR >> 8); UBRR0L = (uint8_t)MY_UBRR; UCSR0B = (1 << RXEN0) | (1 << TXEN0); UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); } char USART_Receive() { while (!(UCSR0A & (1 << RXC0))); return UDR0; } void USART_Transmit(uint8_t data) { while (!(UCSR0A & (1 << UDRE0))); UDR0 = data; } int main(void) { DDRB = 0b11; PORTB = 0b11; USART_Init(); while (1) { char c = USART_Receive(); USART_Transmit(c); if (c == '9') { PORTB = 0b01; } else { PORTB = 0b11; } } } Этот код должен отправлять данные обратно, а если был отправлен символ "9" - отключать один из диодов Беда в том, что данные возвращаются не те, что отправлялись изначально. Совсем не те. что я предпринимал: 1. Менял частоту на 8МГц (стало только хуже - если изначально он отправлял не те символы, то после изменения частоты стал отправлять пустоту, или неотображаемые символы) 2. Менял контроллер (Изначально я делал на ATtiny2313 - у него получалось лучше возвращать данные, но, даже если он отправлял '9' обратно - в коде она не срабатывала как '9', не выключала диод) Кто то может, пожалуйста, дать мне подсказку, как справиться с этим?

Комментарии: 37

  1. Krevedko

    Кварц внешний? Вроде, внутренние резонаторы у AVR лютый кал и вообще не держат частоту. Я бы посмотрел сначала логическим анализатором что выходит из TXD контроллера и на какой частоте.

    • Cookie

      внешний кварц... и логический анализатор пойду изучать что это за звери

    • Vga

      У меня уарт вполне работал на внутреннем генераторе. Даже софт-усб на нем работает, говорят, если калиброватся по SOF

      • Krevedko

        Так дело не в подстройке, а в температурной нестабильности. Частота сильно уплывает. Хотя, может, там 2400 скорость и вообще на всё пофиг.

        • Vga

          Он на столе экспериментирует, а не в термокамере)

  2. Pavel

    Если не трогали настройки hc05, то его базовый baudrate 38400, а у вас в коде - 9600

    • Cookie

      я вычитал в документации что 9600... Когда я менял baud данные переставали являться вообще оке, я попробую

    • Cookie

      hc05 это тоже что и BT05?

      • Pavel

        Понятия не имею, если честно)

        • Cookie

          ужас

  3. Anonim

    Почему не взять esp32 или ch32 а не заниматься этой порнографией связывая пердуину и hc05

    • Vincent

      Купил я ESP32 2 штуки на АлиЭкспресс Обе не шьются У разных продавцов И в комментариях то же самое много кто пишет

      • Anonim

        Рукожопство это искусство

        • Karboflex

          Надо сначала коментарии читать

          • Vincent

            Хотя с 8266 никогда проблем не было, но там и BLUETOOTH нет

      • Anonim

        Понимаю Почему все что я покупаю на алике у меня работает? Так тоже рукожопы и оставляют которые не смогли

        • Karboflex

          А ты электрику китайскую возьми)

          • Anonim

            Брал

            • Karboflex

              Ну ты возьми чонить на 25 ампер и грузани на 25 ампер же

        • Dmitriy

          продавцы тебя любят

          • Anonim

            Брал Причем тут блять продавцы? Руки у меня пришиты в нужное место и голова тоже на месте

            • Karboflex

              Да не свисти. Китайцы даже гвоздя пожалеют

              • Anonim

                В чем я "свищу"? Я сказал - брал. Ты меня тоже читаешь не тем местом? Ясен хуй у меня голова на месте и дешевый китайских кал под названием 25 ампер я никогда не буду грузить на 25 ампер.

            • Dmitriy

              ты бох, хуле

              • Anonim

                Через мои руки прошло порядка нескольких сотен есп32. Купленных в разных исполнениях и разных модификаций. Процент брака околонулевой. Что я делаю не так? Я знаю что я молодец

                • Vincent

                  ESP32 C3 Super mini была?

                  • Anonim

                    И их у меня штук 10 было. Но не советую У c3 supermini есть прикол. Там была бракованная партия, когда запаивали чип не той марки (без флеша внутри) и продавали Но опять же на чипе написана маркировка

                    • Dmitriy

                      Но ты и с этим справился, верно? :-)

                    • Anonim

                      Мне не попадались. Но обычно на алике в лоте об этом пишут. Просто не только лишь все умеют читать. А так да, справился. Я же молодец Не советую по причине того что там уебищная антенна

                      • Indzeec

                        а эта плата говно?

                        • Anonim

                          Не юзал. Да все они говно по факту. Я нашел пару продавцов которые мне модули отгружают правильного качества. А девборды отправь в помойку

                          • Indzeec

                            У меня щас нет ничего для того чтобы обвязки делать

                • Domovenok

                  Руки из жопы вырасти, потом платы заказывай

        • Vincent

          Угу, конечно

    • Cookie

      во многом потому что у меня нет esp

      • Cookie

        за то есть штук пять разных AVR и блютуз модуль

  4. Artem

    fuse настроил правильно?

Не нашли ответ?

Вам также может быть интересно