Я пытаюсь подключить PyBoard (я не уверен в аппаратной версии, но на ней работает uPython 1.9.3) к светодиодному дисплею на основе SSD1306 через I2C.
Физическое соединение работает, и я могу установить соединение I2C, увидеть устройство и убедиться, что оно доступно для чтения в соединении I2C.
Однако я не могу использовать модуль ssd1306
из uPython. Гитхаб. Я могу нормально импортировать модуль, но класс SSD1306
не инициализируется. Код, который терпит неудачу, таков:
class SSD1306(framebuf.FrameBuffer):
def __init__(self, width, height, external_vcc):
self.width = width
self.height = height
self.external_vcc = external_vcc
self.pages = self.height // 8
self.buffer = bytearray(self.pages * self.width)
super().__init__(self.buffer, self.width, self.height, framebuf.MONO_VLSB)
self.init_display()
Сообщение об ошибке всегда
TypeError: function missing 1 required positional arguments
который кажется ложным (я определенно убедился, что передал требуемые width
, height
и external_vcc
. Я почти уверен, что проблема в вызове super()
- но это uPython, поэтому отладка печати внутри инициализатора не работает не похоже на работу.
Я читал в нескольких местах, что uPython имеет тенденцию выдавать плохие сообщения об ошибках об отсутствующих параметрах при вызове закрытия, но это лишь отдаленно похоже на это. На всякий случай я попытался добавить явное self в вызов super().__init__()
, но это тоже не сработало. Так что я немного застрял и буду рад совету о правильном следующем шаге для отладки.