Китайматик сделать блютуз

вы заливали с включенным DEBUG? режим DEBUG надо отключить перед заливкой рабочей прошивки и установки в сканматик. добавить // в начале строки то есть //#define DEBUG. по умолчанию так и есть. он предназначен для тестов до установки непосредственно в устройство.
 
вы заливали с включенным DEBUG? режим DEBUG надо отключить перед заливкой рабочей прошивки и установки в сканматик. добавить // в начале строки то есть //#define DEBUG. по умолчанию так и есть. он предназначен для тестов до установки непосредственно в устройство.
Понял. Спасибо.
 
Есть у кого бинарные файлы для прошивки модуля ESP-32 под 32 версию A111788 под китайматик но не через ардуино!
 
Через адруино вообще не сложно
 
После того как сгорел оригинал сделал из китайматика с блютусом на 22 версию сегодня есть все для еще одного в резерв под 32 версию уже прошил и поставил защиту а с esp прошиваю постоянно выдает А78730 по этому и ищу 3 бинарника под А111788. Спасибо
 
Через flash download!
 
Спасибо! В соседнем форуме добрые люди помогли!
 
Напиши в лс попробую выложить.
 
 
У меня, наконец дошли руки до запуска блутуза. сначала проверил на прошивке что выложена здесь. все работает стабильно но подтупливает, особенно по сравнению с проводом. Решил что надо как-то распаралеллить нагрузку. В результате родилась следующая прошивка что принципиально другой режим обработки. результат порадовал! интерфейс стал заметно более отзывчивый.
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <driver/uart.h>
#include <BluetoothSerial.h>
#define BAUD_RATE 115200 * 8
#define SIZE_BUFFER 512
#define SIZE_FIFO SIZE_BUFFER * 8
#define SAVE_MODE
//#define USE_PIN
#ifdef USE_PIN
const char* pin = "1234";
#endif
const String device_name = "SCANMATIK #A111788";
BluetoothSerial SerialBT;
uint8_t buffer[SIZE_BUFFER];
uint8_t bufferBT[SIZE_BUFFER];
unsigned int available=0;
unsigned int availableBT=0;
size_t bytesRead=0;
size_t bytesReadBT=0;
size_t bytesWrite=0;
size_t bytesWriteBT=0;
#ifdef SAVE_MODE
uint32_t min_delay = 1;
uint32_t max_delay = min_delay * 1024;
uint32_t cur_delay = min_delay;
uint32_t cur_delayBT = min_delay;
uint32_t critical_size = (SIZE_FIFO / 4) * 3;
#endif
// Поток для обработки данных из последовательного порта
void serial_reader_task(void* param) {
for (;;) {
available = Serial.available();
if (available > 0) {
bytesRead = Serial.readBytes(buffer, min(available, sizeof(buffer)));
bytesWrite = SerialBT.write(buffer, bytesRead);
#ifdef SAVE_MODE
if (cur_delay > min_delay) {
if (available >= critical_size) {
cur_delay = min_delay;
}
else {
cur_delay /= 2;
}
}
vTaskDelay(pdMS_TO_TICKS(cur_delay)); // пауза для минимизации нагрузки
#endif
}
#ifdef SAVE_MODE
else {
if (cur_delay < max_delay) {
cur_delay *= 2;
}
vTaskDelay(pdMS_TO_TICKS(cur_delay));
}
#endif
}
}
// Поток для обработки данных из Bluetooth
void bluetooth_reader_task(void* param) {
for (;;) {
availableBT = SerialBT.available();
if (availableBT > 0) {
// Чтение данных из Bluetooth
bytesReadBT = SerialBT.readBytes(bufferBT, min(availableBT, sizeof(bufferBT)));
bytesWriteBT = Serial.write(bufferBT, bytesReadBT);

#ifdef SAVE_MODE
if (cur_delayBT > min_delay) {
if (availableBT >= critical_size) {
cur_delayBT = min_delay;
}
else {
cur_delayBT /= 2;
}
}
vTaskDelay(pdMS_TO_TICKS(cur_delayBT)); // пауза для минимизации нагрузки
#endif
}
#ifdef SAVE_MODE
else {
if (cur_delayBT < max_delay) {
cur_delayBT *= 2;
}
vTaskDelay(pdMS_TO_TICKS(cur_delayBT));
}

#endif
}
}
void setup() {
Serial.setRxBufferSize(SIZE_FIFO);
Serial.setTxBufferSize(SIZE_FIFO);
Serial.begin(BAUD_RATE);
SerialBT.begin(device_name);
memset(buffer, 0, sizeof(buffer));
memset(bufferBT, 0, sizeof(bufferBT));

// setup UART from hardware (RTS/CTS)
uart_set_pin(UART_NUM_0, 1, 3, 22, 19); // UART, TX, RX, RTS, CTS
uart_set_hw_flow_ctrl(UART_NUM_0, UART_HW_FLOWCTRL_CTS_RTS, 64);
uart_set_mode(UART_NUM_0, UART_MODE_UART);

SerialBT.begin(device_name);
#ifdef USE_PIN
SerialBT.setPin(pin);
#endif

Serial.print("AT-AB -BypassMode-\n");
// Назначение задач на разные ядра
xTaskCreatePinnedToCore(serial_reader_task, "Serial Reader", 4096, NULL, 10, NULL, 0);
xTaskCreatePinnedToCore(bluetooth_reader_task, "Bluetooth Reader", 4096, NULL, 10, NULL, 1);
}
// Метод loop()
void loop() {}
 
Назад
Верх Низ