Статус пинов SPI?
- Войдите на сайт для отправки комментариев
Пт, 05/02/2021 - 13:10
Как можно проверить уровень на пинах аппаратного SPI? UNO 328/P. Дело в том что ведомое устройство сообщает свою готовность принять данные по уровню на линиях. При использовании библиотеки SPI.h вызов digitalRead() не даёт результата. конструкция вида
SPI.end(); digitalRead(12); SPI.begin();
не допустима, т.к.
SPI.beginTransaction(SPISettings(SPI_CLOCK, MSBFIRST, SPI_MODE3));
при вызове SPI.end() линия clock становится на низкий уровень и если перед этим была посылка с последним битом в логической единице , то ведомый блок распознаёт стартовый бит.
Возможно как-то узнать состояние через регистры или отключить spi с сохранением логических уровней?
Самый дубовый способ - подключить параллельно SPI другие пины и с них читать.
Перед выключением SPI включи на пине SCK подтяжку и следующей командой переведи пин на вход. Должно помочь.