OLED SSD1306
- Войдите на сайт для отправки комментариев
Пнд, 26/05/2014 - 15:54
Добрый день!
Пытаюсь запустить OLED2864 (чип SSD1306, I2C). В качестве платы использую CipKIT MAX32, но программа на стандартной библиотеке Wire. В результате начальной инициализации появляется "звездное небо" и все. Вывести данные на экран не получается. Может кто сталкивался с этой проблемой.
// Начальная инициализация дисплея #include <Wire.h> int DC = 30; int RES = 31; int CS = 32; int Com_adr = 0x3C; int Data_adr = 0x3D; int Data [8] = {0x81,0x81,0xFF,0x19,0x29,0x49,0x86,0x80}; void setup() { pinMode (DC, OUTPUT); pinMode (RES, OUTPUT); pinMode (CS, OUTPUT); digitalWrite (DC, HIGH); digitalWrite (DC, LOW); digitalWrite (CS, LOW); // enable chip digitalWrite (RES, HIGH); //Reset delay (100); digitalWrite (RES, LOW); delay (100); digitalWrite (RES, HIGH); delay (100); Wire.begin(); // join i2c bus Wire.beginTransmission(Com_adr); //Internal Wire.send(0xAE); Wire.send(0x00); Wire.send(0x10); Wire.send(0x40); Wire.send(0x81); Wire.send(0xCF); Wire.send(0xA1); Wire.send(0xA6); Wire.send(0xA8); Wire.send(0x3F); Wire.send(0xD3); Wire.send(0x00); Wire.send(0xD5); Wire.send(0x80); Wire.send(0xD9); Wire.send(0xF1); Wire.send(0xDA); Wire.send(0x12); Wire.send(0xDB); Wire.send(0x30); Wire.send(0x8D); Wire.send(0x14); Wire.send(0xAF); Wire.endTransmission(); // stop transmitting delay (200); delay (200); digitalWrite (DC, HIGH); delay (10); Wire.beginTransmission(Data_adr); for (int j=0; j<20; j++) { for (int i=1; i<8; i++) { Wire.send(Data[i]); } } Wire.endTransmission(); delay (5); digitalWrite (DC, LOW); } void loop() { delay(500); }
Все, проблему решил.
Кто то будет искать, найдет тему и будет переспрашивать. Сделайте доброе дело, поделитесь решением.
В форуме, разве что, могу выложить текст программы, а более подробно надо статьей. На этом сайте сторонние авторы могут выкладывать статьи?
Пытаюсь подключить такой дисплей к 16-й меге и столкнулся с аналогичной проблемой, и так как используется не ардуино ваш код использовать не могу, сторонние библиотеки так-же не устраивают ибо ни одна из найденных ну умеет работать на прерываниях аппаратного TWI , отсюда вопрос - какое колдунство требуется дабы все заработало ?