Библиотека OLED_I2C для случайных точек SSD1306

Кокоспалм
Пт, 04 мая 2018 г., 11:11
Всем привет!
У меня здесь есть несколько OLED -дисплеев, но я не могу заставить их работать, к сожалению, ни в одной из библиотек, которые я нашел в папке Core Library (Adafruits SSD1306, OLED_I2C не работают). Я мог бы заставить U8G2 работать тоже...
Только с библиотекой OLED_I2C что -то отображается на дисплее (0.96 "OLED и 0.49 "OLED): только некоторые случайные точки появляются... :?

Вопрос 1:
Я делаю что -то не так?

Вопрос 2:
Если эта библиотека также работает wir 0.66 "дисплей (64x48 точек)?

Это мой код:
#include OLED myOLED(SDA1, SCL1, PB8); extern uint8_t TinyFont[]; void setup() { myOLED.begin(); myOLED.setFont(TinyFont); myOLED.clrScr(); //clear Display } void loop() { myOLED.print("Hello W.", 10,10); myOLED.update(); delay(1000); }

Ахулл
Пт, 04 мая 2018 г., 11:40
Может быть, если вы предоставили несколько изображений дисплеев и, возможно, ссылки на продавца или источника, это может помочь.

Стивестронг
Пт, 04 мая 2018 г., 11:52
5 В <-> 3.3V конфликт?

Кокоспалм
Пт, 04 мая 2018 12:18
0.49 "дисплей:
https: // www.eBay.de/itm/white-slue-0-49 ... 2749.L2649

0.66 "дисплей:
https: // www.eBay.de/itm/0-66inch-oled-d ... 2749.L2649

0.Дисплей 96 ":
https: // www.eBay.de/itm/0-96-6pin-12864 ... 2749.L2649

Все они бегают 3.3V, так что я не думаю, что это как -то связано с напряжениями... :(

Стивестронг
Пт, 04 мая 2018 12:25
Подключите подключенные резисторы? Какое значение? Они адаптированы к скорости шины I2C?

Кокоспалм
Пт, 04 мая 2018 12:52
Я подключился 2.2K резисторы как подтягивания, но это ничего не влияет на. Есть несколько настроек в .H файлы:

В "hw_stm32_defines.час": // *** Hardwarespecific defines *** #define cbi(reg, bitmask) *reg &= ~bitmask #define sbi(reg, bitmask) *reg |= bitmask #define pulseClock cbi(P_SCK, B_SCK); asm ("nop"); sbi(P_SCK, B_SCK) #define fontbyte(x) cfont.font[x] #define bitmapbyte(x) bitmap[x] #define bitmapdatatype unsigned char* #define SDA1 PB11 #define SCL1 PB10 #define SDA PB7 #define SCL PB6 #define TWI_SPEED TWI_SPEED_400k // Set default TWI Speed #define TWI_SPEED_100k 208 #define TWI_SPEED_400k 101 #define TWI_DIV TWI_DIV_400k // Set divider for TWI Speed (must match TWI_SPEED setting) #define TWI_DIV_100k 1 #define TWI_DIV_400k 0

Стивестронг
Пт, 04 мая 2018 г., 17:41
Не знаю, у меня нет OLED -дисплея, поэтому я не могу сказать вам, что там может быть не так.
Не получаешь никаких предупреждений во время строительства проекта?
Я вижу активный электронный компонент на задней стороне первой платы, что это может быть?
Если это регулятор напряжения, это может вызвать некоторые проблемы.
Вы проверили контакты I2C для любого полезного сигнала с областью применения?

Мадиас
Пт, 04 мая 2018 г., 18:46
Только что протестировал на моем Maple Mini:
Проверять Adafruit_ssd1306 (В папке библиотеки STM32 F1!) Примером "ssd1306_128x64_i2c_stm32".
Соединение находится в порту I2C 1 (редактировать!)
Я адаптировал библиотеку много лет назад, кажется, что в I2C было много изменений.
Выход сейчас очень медленный...Но это работает. (Если у меня будет время, я проверю это) Исправлено: см. Следующее сообщение
Oled_i2c (Также в папке библиотеки F1) полностью сломана - даже изменение Hwire на проволоку. Но вы можете использовать Soft-I2C: выберите любой другой вывод, кроме SDA/SCL или SDA1/SCL1, например: OLED myOLED(PA4, PA3);

Мадиас
Пт, 04 мая 2018 г., 20:38
ОК, провод теперь медленный из -за скорости HZ по умолчанию, просто вставьте Wire.setClock(400000);

Кокоспалм
Сб, 5 мая 2018 г., 22:25
Поэтому я должен использовать библиотеку Adafruit SSD1306, потому что LIB OLED_I2C - это какой -то вид, который не испортился и вообще не работает?

Мадиас
Солнце 6 мая 2018 г., 22:28
Если вам нужен HW-SPI для скорости, используйте Adafruit One (с моими модификациями в верхнем посте)
Если вам не нужна скорость и использовать какие -либо бесплатные булавки, используйте другие (как я объяснил)
На монохромном дисплее 128x64 я предпочитаю сохранить свой порт (ы) и делать это «мягкий»