У меня есть проект Arduino, который использует радиомодуль nRF24l01 + через SPI (используя эту библиотеку: http://tmrh20.github.io/RF24/) и считыватель RFID по программному обеспечению. Я сплю своего Arduino и заставляю их разбудить его через прерывание, когда получено сообщение или метка RFID готова к чтению. RFID находится на выводах 4 и 5, в то время как nRF покрывает контакты 9-13, а также номер 2 для его прерывания.Arduino softwareserial сталкивается с SPI?
Оба эти модуля работают нормально с кодом сна и прерывания отдельно, но когда они объединены в один эскиз, Arduino будет просыпаться из-за метки RFID, читать его, а затем попытаться отправить что-то по радио и затем просто зависайте, ожидая вызова библиотеки для записи() для возврата.
Я немного углубился в две библиотеки, но в основном я не могу сделать головы или хвосты библиотеки программного обеспечения. Кажется, может быть, использовать тот же ISR за кулисами, что и мой модуль nRF, но я не сразу понимаю, почему это должно быть большой проблемой, и я не понимаю, почему это должно привести к зависанию радио.
Я знаю, что это может быть длинный выстрел, но кто-нибудь может понять, что может быть? Может быть, кто-нибудь знает эти библиотеки? Любые мысли о работе вокруг? Благодарю.
Вы имеете в виду программное обеспечение SPI с RFID-считывателем? –
RFID-считыватель использует программное обеспечение, поэтому использует протокол типа UART. NRF использует SPI. – MaxStrange
, так что я принимаю его, аппаратные последовательные порты все взяты? В любом случае, они должны хорошо работать вместе. Как работает питание на радио? отдельный запас? это uno? если это uno, и вы используете 3.3v, я бы использовал отдельный источник 3.3v, поскольку текущая емкость его довольно маленькая, и добавление другого устройства, например, могло бы заставить его перестать работать. Однако, если это не так, то после прочтения с RFID отключите серийный номер программного обеспечения, чтобы он не отключил прерывания (в случае, если он получает другую при попытке передать). посмотрите, работает ли он. его проблема с программным обеспечением или проблема с электропитанием. –