Для статистики
Панель из сообщения #268
Марка Qiang li Q8S5V3H BQWZ-ZP
Тип 40х20 скан5
BINARY mux
Мультиплексор 74HC138, драйвер SN16207
Для статистики
Панель из сообщения #268
Марка Qiang li Q8S5V3H BQWZ-ZP
Тип 40х20 скан5
BINARY mux
Мультиплексор 74HC138, драйвер SN16207
После обновления библиотеки DMD_STM32 c версии 0.5.0 до 1.0.6 проект перестал работать.
Ко всему стал писать “ПРЕДУПРЕЖДЕНИЕ: библиотека JQ6500_Serial должна запускаться на архитектурах avr, esp8266, esp32 и может быть несовместима с вашей платой на архитектуре STM32F1.”
С чем это может быть связано?
а что это за библиотека, можно ссылку?
Не то сообщение скопировал.
“ПРЕДУПРЕЖДЕНИЕ: библиотека DMD_STM32-dev-V2 должна запускаться на архитектурах stm32, rp2040 и может быть несовместима с вашей платой на архитектуре STM32F1.”
Это только предупреждение и на результат не влияет.
Можно подробнее про
Что именно сломалось?
Без кода (желательно полного) сложно что-то сказать.
Если не хотите выкладывать сюда - пришлите мне на почту dd собака jwee.ru
/*--------------------------------------------------------------------------------------
Demo for RGB panels
DMD_STM32a example code for STM32F103xxx board
------------------------------------------------------------------------------------- */
#include "DMD_RGB.h"
// Fonts includes
#include "st_fonts/UkrRusArial14.h"
#include "st_fonts/UkrRusSystemFont5x7.h"
#pragma GCC diagnostic ignored "-Wnarrowing"
#pragma GCC diagnostic ignored "-Woverflow"
#include "gfx_fonts/GlametrixLight12pt7b.h"
#include "gfx_fonts/GlametrixBold12pt7b.h"
#include "gfx_fonts/comic9pt8b.h"
#pragma GCC diagnostic warning "-Wnarrowing"
#pragma GCC diagnostic warning "-Woverflow"
//Number of panels in x and y axis
#define DISPLAYS_ACROSS 1
#define DISPLAYS_DOWN 1
// Enable of output buffering
// if true, changes only outputs to matrix after
// swapBuffers(true) command
// If dual buffer not enabled, all output draw at matrix directly
// and swapBuffers(true) cimmand do nothing
#define ENABLE_DUAL_BUFFER true
// ==== DMD_RGB pins ====
// mux pins - A, B, C... all mux pins must be selected from same port!
#define DMD_PIN_A PB12
#define DMD_PIN_B PB13
#define DMD_PIN_C PB14
#define DMD_PIN_D PB15
#define DMD_PIN_E PB1
//#define DMD_PIN_E PB9
// put all mux pins at list
uint8_t mux_list[] = { DMD_PIN_A , DMD_PIN_B , DMD_PIN_C , DMD_PIN_D , DMD_PIN_E };
#define DMD_PIN_nOE PB1
#define DMD_PIN_SCLK PB2
// pins for R0, G0, B0, R1, G1, B1 channels and for clock
// all this pins also must be selected from same port!
uint8_t custom_rgbpins[] = {PB0, PB9, PB8, PB5, PB6, PB10, PB7 }; // CLK, R0, G0, B0, R1, G1, B1
//uint8_t custom_rgbpins[] = {PB0, PB4,PB8,PB5, PB6,PB10,PB7 }; // CLK, R0, G0, B0, R1, G1, B1
//Fire up the DMD object as dmd
// We use 64x32 matrix with 16 scans:
DMD_RGB <RGB64x32plainS16> dmd(mux_list, DMD_PIN_nOE, DMD_PIN_SCLK, custom_rgbpins, DISPLAYS_ACROSS, DISPLAYS_DOWN, ENABLE_DUAL_BUFFER);
// other options are:
// <RGB32x16plainS8> - 32x16 matrix with 8scans
// <RGB80x40plainS20> - 80x40 matrix with 20scans
// <RGB64x64plainS32> - 64x64 matrix with 32scans
// --- Define fonts ----
// DMD.h old style font
DMD_Standard_Font UkrRusArial_F(UkrRusArial_14);
DMD_Standard_Font UkrRusSystemFont_F(UkrRusSystemFont5x7);
// GFX font with sepatate parts for Latin and Cyrillic chars
//DMD_GFX_Font GlametrixL((uint8_t*)&GlametrixLight12pt7b,(uint8_t*)&GlametrixLight12pt8b_rus,0x80,13);
DMD_GFX_Font GlametrixL((uint8_t*)&GlametrixBold12pt7b, (uint8_t*)&GlametrixBold12pt8b_rus, 0x80, 13);
//DMD_GFX_Font GlametrixL((uint8_t*)&comic9pt8b,(uint8_t*)&comic9pt8brus,0x80,13);
// create foreground colors
uint16_t col[] = {
dmd.Color888(255, 0, 0), // red 0
dmd.Color888(0, 255, 0), // green 1
dmd.Color888(0, 0, 255), // blue 2
dmd.Color888(0, 0, 0), // black 3
dmd.Color888(255, 255, 255), // white 4
};
uint16_t bg = 0; // background - black
int col_cnt = 3; // color count
/*--------------------------------------------------------------------------------------
UTF8 char recoding
--------------------------------------------------------------------------------------*/
int utf8_rus(char* dest, const unsigned char* src) {
uint16_t i, j;
for ( i = 0, j = 0; src[i]; i++) {
if ((src[i] == 0xD0 ) && src[i + 1]) {
dest[j++] = src[++i] - 0x10;
}
else if ((src[i] == 0xD1 ) && src[i + 1]) {
dest[j++] = src[++i] + 0x30;
}
else dest[j++] = src[i];
}
dest[j] = '\0';
return j;
}
/*--------------------------------------------------------------------------------------
setup
Called by the Arduino architecture before the main loop begins
--------------------------------------------------------------------------------------*/
void setup(void)
{
// initialize DMD objects
dmd.init();
draw2Text("Отсутствуют", "данные", 4);
delay(3000);
}
void draw2Text(String str1, String str2, int color)
{
char buf[100];
int sLength = str1.length();
str1.toCharArray(buf, sLength + 1 );
char k2[50];
utf8_rus(k2, (const unsigned char* )buf);
sLength = str2.length();
str2.toCharArray(buf, sLength + 1 );
char k1[50];
utf8_rus(k1, (const unsigned char* )buf);
dmd.setTextColor(col[color], bg);
dmd.clearScreen(true);
dmd.selectFont(&GlametrixL);
dmd.drawStringX(0, -2, k2, col[color]); //
dmd.drawStringX(0, 15, k1, col[color]); //
dmd.swapBuffers(true);
}
У вас в шаблоне матрицы не хватает указания глубины цвета, должно быть как-то так:
Вы наверно не тот код выложили, этот на версии 1.0.6 даже компилироваться не будет.
Кроме того, у вас пин PB1 использован дважды.
У меня большая просьба - пожалуйста, выложите ИМЕННО ТОТ КОД, что Вы запускаете, а не “похожий”.
Это код, который работает со старой библиотекой.
Когда использую с новой, то пишу:
DMD_RGB <RGB64x32plainS16, COLOR_4BITS> dmd(mux_list, DMD_PIN_nOE, DMD_PIN_SCLK, custom_rgbpins, DISPLAYS_ACROSS, DISPLAYS_DOWN, ENABLE_DUAL_BUFFER);
Это все отличия.
На всякий случай, использую чип ONBON BX-6U
пин PB1 поменял на PB3
#define DMD_PIN_E PB3
не помогло.
Из за сканирования 1/20 сигнал E думаю не используется.
Попробовал тестовый скетч новой библиотеки на BluePill, вообще не завелось.
Все сигналы есть, кроме CLK. Пробовал на другой порт CLK вешать, не работает. Пробовал отдельно портом, на котором CLK висит управлять, все в норме.
Пробовал на двух платах.
В новых версиях режим цветности COLOR_4BITS требует строго определенных пинов. Выбранные Вами пины несовместимы с этим режимом.
Попробуйте так
DMD_RGB <RGB64x32plainS16, COLOR_4BITS_Packed>
Окатывал библиотеки по очереди на более старые.
Заработало на 0.8.1 с цветностью COLOR_4BITS.
Правда gfx шрифты при этом сломались.
Виктор, смотрите почту
Здравствуйте. Есть ли данные, какой скан на матрице - 8 или 16?
Я сейчас в отъезде, буду в понедельник
Да забыл написать, матрица со сканированием 1/8.
Добрый день
Запишите пожалуйста видео с использованием шаблонов
#define RGB64x32_S8_pt1 3,64,32,8,1 // 64x32 1/8 pt1
и
#define RGB64x32_S8_pt2 3,64,32,8,2 // 64x32 1/8 pt2
Добрый день.
#define RGB64x32_S8_pt1 3,64,32,8,1 // 64x32 1/8 pt1
и
#define RGB64x32_S8_pt2 3,64,32,8,2 // 64x32 1/8 pt2