SI4463 puede escuchar antes de hablar (LBT). Encontré esta función en 29 páginas de la hoja de datos . Creo que puedo usar LBT para hacer un escáner de banda como this . Pero no hay ningún ejemplo para mostrar cómo hacerlo.
Solo arduino Estoy familiarizado, y creo que debería usar SPI library para enviar una recomendación al SI4463 y recibir datos, por ejemplo, SPI.tansfer (recomendar). Pero no sé qué elogio puede hacer esto. De hecho, solo puedo usar RH_RF24.h para controlar SI4463. Pero no hay una función adecuada para hacer un escáner. El RSSI de RH_RF24.h es el RSSI del último mensaje recibido. No se puede utilizar para LBT.
Lo siento por mi pobre inglés. Si hay algún problema con mi pregunta, por favor dígame.
Gracias.
#include <SPI.h>
#include <RH_RF24.h>
// Singleton instance of the radio driver
RH_RF24 rf24;
uint8_t Recieve_Data[20];
uint8_t receive_buffer[RH_RF24_MAX_MESSAGE_LEN];
uint8_t receive_buffer_length = sizeof(receive_buffer);
uint8_t Rssi;
unsigned long Micro_Time;
uint8_t status[8];
uint8_t buf[RH_RF24_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
void setup()
{
Serial.begin(115200);
if (!rf24.init())
Serial.println("init failed");
// Defaults after init are 434.0MHz, modulation GFSK_Rb5Fd10, power 0x10
while(!rf24.setFrequency(443));
rf24.setModemConfig(rf24.GFSK_Rb50Fd100); //设置成GFSK_Rb50Fd100
}
void loop()
{
rf24.setModeRx();
delay(100);
rf24.setModeIdle();
rf24.command(RH_RF24_CMD_GET_INT_STATUS, NULL, 0, status, sizeof(status));
Serial.print("Id ");
for (int i = 0; i <= 8; i++)
{
Serial.print((uint8_t)status[i]);
Serial.print(" ");
}
Serial.println();
/*
if (status[2])
{
uint8_t modem_status[6];
rf24.command(RH_RF24_CMD_GET_MODEM_STATUS, NULL, 0, modem_status, sizeof(modem_status));
delay(100);
for (int i = 0; i <= 6; i++)
{
Serial.print(modem_status[i]);
Serial.print(" ");
}
Serial.println();
}
*/
delay(400);
}