запилить драйвер для дисплея с кастомным протоколом, похожим на I2C, и хочу как-то сохранить у себя пины, на которых он сидит. Как их в структуре объявить? Я пробовал использовать дженерик на тип, который реализует InputPin и OutputPin, но компилятор на попытке позвать set_low начинает искать их реализации из устаревших версий этих трейтов, и обламывается. Ещё я пробовал использовать напрямую тип GpioPin, но это упирается в то, что всё равно требуется заранее указать режим io, и я не уверен, что потом его можно будет переключить. Посмотрел в драйвер I2C, он использует функции типа connect_input_to_peripheral, но на них нет документации, и список сигналов, которые она использует, закрыт, свои сигналы добавлять туда нельзя. Как тут быть? Можно, конечно, на первое время пины захардкодить, но не хотелось бы.
Тебе имортить надо конкретный трейт outputpin
Так gpio::OutputPin и заимпорчен, компилятор с какого-то рожна говорит, что нужен ещё и prelude::embedded_hal_OutputPin::v1 с конфликтующей сигнатурой
Не, конечно можно заимпортить, но если пишешь драйвер как отдельный крейт, то лучше это используй
Обсуждают сегодня