rfm69 на M0 Express ... init() не работает
Я уже успешно подключил rfm69 к своему Feather M0 Express... но я не могу сделать это снова.
Соединения следующие (в порядке rfm69):
Vin -> 3V Gnd -> Gnd Ru -> (ничего) G0 -> 9 SCK -> SCK МИСО -> МИ MOSI -> МО CS -> 10 RST -> 6
Код установки таков:
#include <SPI.h>
#include <RH_RF69.h>
#define RFM69_CS 10
#define RFM69_INT 9
#define RFM69_RST 6
#define LED 13
// Одноэлементный экземпляр радиодрайвера
RH_RF69 rf69(RFM69_CS, RFM69_INT);
void setup()
{
Serial.begin(9600);
while (!Serial);
Serial.println("Feather RFM69 RX Test!");
Serial.println();
// ручной сброс
digitalWrite(RFM69_RST, HIGH);
delay(10);
digitalWrite(RFM69_RST, LOW);
delay(10);
if (!rf69.init())
//***********************************
Serial.println("init failed");
else
Serial.println("init ok");
// Значения по умолчанию после инициализации - 434,0 МГц, модуляция GFSK_Rb250Fd250, +13 дБм (для модуля низкой мощности)
// Нет шифрования
if (!rf69.setFrequency(434.0))
Serial.println("setFrequency failed");
else
Serial.println("setFrequency ok");
// Если вы используете высокомощный RF69, например RFM69HW, вы * должны * установить мощность Tx с помощью
// ishighpowermodule флаг установлен следующим образом:
//rf69.setTxPower (14, правда);
// Ключ шифрования должен быть таким же, как и в клиенте
uint8_t key[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
rf69.setEncryptionKey(key);
#if 0
// Для совместимости с RFM69 Struct_send
rf69.setModemConfig(RH_RF69::GFSK_Rb250Fd250);
rf69.setPreambleLength(3);
uint8_t syncwords[] = { 0x2d, 0x64 };
rf69.setSyncWords(syncwords, sizeof(syncwords));
rf69.setEncryptionKey((uint8_t*)"thisIsEncryptKey");
#endif
Serial.println("Fin du Setup");
}
Но во время выполнения программа останавливается на //**************************
Я ничего не понимаю.
Кто-нибудь может мне помочь?
Большое спасибо и счастливого Рождества
1 ответ
Сообщение "init failed" не появляется. Все останавливается на "//******". Я сравнил с другой программой RFM69. Я добавил строку "digitalWrite(RFM69_RST, LOW);" в начале "// manual reset", и теперь она работает. последовательность digitalWrite(RFM69_RST, LOW); digitalWrite (RFM69_RST, ВЫСОКИЙ); задержка (10); digitalWrite (RFM69_RST, НИЗКИЙ); кажется, это более эффективно. .. для меня это остается загадкой.
Спасибо
Вы должны быть в состоянии отметить свой ответ как принятый., @timemage
Извините, я не понимаю, что вы имеете в виду ... Кажется, таким образом я не в состоянии это сделать. Я почти никогда не пользуюсь форумами., @JL Ecole Decroly
- Не удается успешно реализовать синглтон
- Ключ LoRa Radio не взаимодействует с Adafruit Feather M0 LoRa
- C++ против языка Arduino?
- Как использовать SPI на Arduino?
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- Ошибка: expected unqualified-id before 'if'
- Что лучше использовать: #define или const int для констант?
- Функции со строковыми параметрами
Чтобы было ясно, вы видите печать "init failed", а затем никакого дальнейшего вывода на последовательный монитор, это правильно?, @timemage