Невозможно заставить OLED -дисплей работать с оборудованием I2C в библиотеке ADAFRIT_SSD1306

Бродяга
Сб 01 августа 2015 г., 17:32
Привет.

Это мой первый пост!

Прежде всего, я хотел бы поблагодарить вас за всех людей, участвующих в том, чтобы заставить доски STM32 работать с Arduino IDE. я люблю всех вас ;)

Теперь, к моей реальной проблеме.

У меня есть общая плата STM (Вот этот), что я пытаюсь получить это OLED (0,96 ") дисплей Для работы, хотя I2C (используя библиотеку ADAFRIT_SSD1306), но мне удалось только заставить ее работать с помощью Soft I2C (класс TwoWire).

Некоторая информация:
  • Несмотря на то, что, будучи разработчиком программного обеспечения, я не занимаюсь встроенной работой для жизни (это больше похоже на хобби :))
  • Это код, который я изменил в ADAFRIT_SSD1306_STM32.CPP: //HardWire HWIRE(2, I2C_FAST_MODE); // I2c2 #include TwoWire HWIRE(PB6, PB7, SOFT_FAST);

Rogerclark
Сб 01 августа 2015 г., 21:48
Добро пожаловать

Первоначально я бы попробовал просто использовать TwoWire, а не Hardwire, это реализация программного обеспечения, которая работает до 250 кбит / с (вероятно, может идти быстрее в будущем с некоторой оптимизацией кода) и работает на любых контактах.

Я думаю, что Hardwire работает, но только на конкретных булавках, и я думаю, что у него есть некоторые причуды.

Однако я не эксперт по проводам, так что, вероятно, лучше ждать, пока еще люди ответите.

Mrburnette
Солнце 02 августа 2015 12:33
Я использовал только программный SPI с моими OLED -проектами
https: // www.хакерс.io/rayburne
Но я использовал как H/W, так и S/W SPI с ILI9341

Луча

Бродяга
Солнце 02 августа 2015 14:09
Rogerclark написал:Добро пожаловать

Бродяга
Солнце 02 августа 2015 14:21
Mrburnette написал:Я использовал только программный SPI с моими OLED -проектами
https: // www.хакерс.io/rayburne
Но я использовал как H/W, так и S/W SPI с ILI9341

Марекик
Вторник 27 сентября 2016 г., 22:28
Я знаю, что это старая тема, но...

Я использую Blue Pill Poard (STM32F103C8T6, версия 3). С текущей (измененной) библиотекой Adafruit 0.96 «OLED -дисплей работает на канале I2C, используя оборудование I2C, но я не смог заставить его работать с каналом 2 (что является по умолчанию в библиотеке). Кто -то еще добился успеха с этим?

Я бы использовал канал 1 (PB6, PB7), но когда я это сделаю, RTC DS3231 не будет работать, поскольку он пытается использовать программное обеспечение I2C на тех же штифтах. Я попытался переназначить программное обеспечение i2c на другие булавки, но это не работает (по крайней мере, при использовании Hardwire для OLED) в моем случае. Я попытался изменить библиотеку Sodaq для этого RTC, он работает в течение нескольких секунд после загрузки, но затем доска висит.

Если OLED будет работать на канале второго I2C, это было бы здорово. Если нет, мне пришлось бы вернуться в Arduino Pro Micro для моего проекта, и я хотел бы избежать этого, так как F103 предлагает больше ОЗУ. Но медленное программное обеспечение i2c очень непривлекательно для меня.

Rogerclark
Вторник 27 сентября 2016 г. 11:29 вечера
Программное обеспечение i2c - это опция по умолчанию, поэтому должно работать над любыми булавками GPIO

Но я не уверен, пытался ли кто -нибудь запустить Adwarwware i2c на чем -то, кроме i2c - 1.

В библиотеке может быть ошибка, где он что -то жесткое кодирование для канала 1.

Марекик
Ср 28 сентября 2016 г. 1:46
Я посмотрю на это. Я не хочу возвращаться к Pro Micro и хочу изучить возможности этого совета.

Мадиас
Ср 28 сентября 2016 г., 6:45
Поиск моих OLED библиотеки, предоставленных на этом форуме, я думаю, что они также в репо. HW I2C работает над обоими, но вам нужно изменить его в файле библиотеки. Я уверен, что я сделал комментарий в файле CPP или H

Марекик
Сб, 1 октября 2016 г., 19:00
Мадиас написал:Поиск моих OLED библиотеки, предоставленных на этом форуме, я думаю, что они также в репо. HW I2C работает над обоими, но вам нужно изменить его в файле библиотеки. Я уверен, что я сделал комментарий в файле CPP или H

Фари
Вт 28 февраля 2017 г. 10:04
Привет, Вагаус!

Hwire lib висит, так как он входит в бесконечную петлю. (Смотрите мой пост http: // www.STM32duino.com/viewtopic.PHP?f = 14&t = 462)
Проволочная либера. Это потому, что функция опроса PIN -кода SDA не имеет условия выхода, если SDA не идет высоко.
Вы нашли решение для вашей проблемы?