Привет, гении.
Пытаюсь связать 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
Krevedko
Кварц внешний? Вроде, внутренние резонаторы у AVR лютый кал и вообще не держат частоту. Я бы посмотрел сначала логическим анализатором что выходит из TXD контроллера и на какой частоте.
Cookie
внешний кварц... и логический анализатор пойду изучать что это за звери
Vga
У меня уарт вполне работал на внутреннем генераторе. Даже софт-усб на нем работает, говорят, если калиброватся по SOF
Krevedko
Так дело не в подстройке, а в температурной нестабильности. Частота сильно уплывает. Хотя, может, там 2400 скорость и вообще на всё пофиг.
Vga
Он на столе экспериментирует, а не в термокамере)
Pavel
Если не трогали настройки hc05, то его базовый baudrate 38400, а у вас в коде - 9600
Cookie
я вычитал в документации что 9600... Когда я менял baud данные переставали являться вообще оке, я попробую
Cookie
hc05 это тоже что и BT05?
Pavel
Понятия не имею, если честно)
Cookie
ужас
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 и блютуз модуль
Artem
fuse настроил правильно?