English | 简体中文 | 繁體中文 | 日本語 | Deutsch | 한국어
NRF905 ist ein Ein-Chip-Funktransceiver für das 433/868/915-MHz-ISM-Band. Der Transceiver besteht aus einem voll integrierten Frequenzsynthesizer, einer Empfängerkette mit Demodulator, einem Leistungsverstärker, einem Quarzoszillator und einem Modulator. Die ShockBurst™-Funktion verarbeitet Präambel und CRC automatisch. Sie können den nRF905 einfach über das SPI konfigurieren. Der Stromverbrauch ist sehr gering, beim Senden nur 9 mA bei einer Ausgangsleistung von -10 dBm und im Empfangsmodus 12,5 mA. Eingebaute Power-Down-Modi machen Energiesparen einfach realisierbar. NRF905 wird in der drahtlosen Datenkommunikation, Alarmsicherheitssystem, Hausautomation, Fernbedienung und so weiter verwendet.
LibDriver NRF905 ist der Treiber mit vollem Funktionsumfang von NRF905, der von LibDriver gestartet wurde. Er bietet Funktionen für drahtloses Senden, drahtloses Empfangen usw. LibDriver ist MISRA-konform.
/src enthält LibDriver NRF905-Quelldateien.
/interface enthält die plattformunabhängige Vorlage LibDriver NRF905 SPI.
/test enthält den Testcode des LibDriver NRF905-Treibers und dieser Code kann die erforderliche Funktion des Chips einfach testen.
/example enthält LibDriver NRF905-Beispielcode.
/doc enthält das LibDriver NRF905-Offlinedokument.
/Datenblatt enthält NRF905-Datenblatt.
/project enthält den allgemeinen Beispielcode für Linux- und MCU-Entwicklungsboards. Alle Projekte verwenden das Shell-Skript, um den Treiber zu debuggen, und die detaillierten Anweisungen finden Sie in der README.md jedes Projekts.
/misra enthält die Ergebnisse des LibDriver MISRA Code Scans.
Verweisen Sie auf eine plattformunabhängige SPI-Schnittstellenvorlage und stellen Sie Ihren Plattform-SPI-Treiber fertig.
Fügen Sie /src, /interface und /example zu Ihrem Projekt hinzu.
#include "driver_nrf905_basic.h"
uint8_t (*g_gpio_irq)(void) = NULL;
uint8_t res;
uint8_t addr[4] = NRF905_BASIC_DEFAULT_RX_ADDR;
char data[] = "libdriver";
...
static void a_callback(uint8_t type, uint8_t *buf, uint8_t len)
{
switch (type)
{
case NRF905_STATUS_AM :
{
nrf905_interface_debug_print("nrf905: address match.\n");
break;
}
case NRF905_STATUS_TX_DONE :
{
nrf905_interface_debug_print("nrf905: tx done.\n");
break;
}
case NRF905_STATUS_RX_DONE :
{
uint8_t i;
nrf905_interface_debug_print("nrf905: irq receive with length %d.\n", len);
for (i = 0; i < len; i++)
{
nrf905_interface_debug_print("%c", buf[i]);
}
nrf905_interface_debug_print(".\n");
break;
}
default :
{
nrf905_interface_debug_print("nrf905: unknown code.\n");
break;
}
}
}
...
res = gpio_interrupt_init();
if (res != 0)
{
return 1;
}
g_gpio_irq = nrf905_interrupt_irq_handler;
res = nrf905_basic_init(NRF905_MODE_TX, a_callback);
if (res != 0)
{
(void)gpio_interrupt_deinit();
g_gpio_irq = NULL;
return 1;
}
...
if (nrf905_basic_sent((uint8_t *)addr, (uint8_t *)data, (uint8_t)strlen(data)) != 0)
{
(void)nrf905_basic_deinit();
(void)gpio_interrupt_deinit();
g_gpio_irq = NULL;
}
...
if (nrf905_basic_deinit() != 0)
{
(void)gpio_interrupt_deinit();
g_gpio_irq = NULL;
}
(void)gpio_interrupt_deinit();
g_gpio_irq = NULL;
...
return 0;
#include "driver_nrf905_basic.h"
uint8_t (*g_gpio_irq)(void) = NULL;
uint8_t res;
uint32_t timeout;
uint8_t addr[4] = NRF905_BASIC_DEFAULT_RX_ADDR;
...
static void a_callback(uint8_t type, uint8_t *buf, uint8_t len)
{
switch (type)
{
case NRF905_STATUS_AM :
{
nrf905_interface_debug_print("nrf905: address match.\n");
break;
}
case NRF905_STATUS_TX_DONE :
{
nrf905_interface_debug_print("nrf905: tx done.\n");
break;
}
case NRF905_STATUS_RX_DONE :
{
uint8_t i;
nrf905_interface_debug_print("nrf905: irq receive with length %d.\n", len);
for (i = 0; i < len; i++)
{
nrf905_interface_debug_print("%c", buf[i]);
}
nrf905_interface_debug_print(".\n");
break;
}
default :
{
nrf905_interface_debug_print("nrf905: unknown code.\n");
break;
}
}
}
...
timeout = 5000;
res = gpio_interrupt_init();
if (res != 0)
{
return 1;
}
g_gpio_irq = nrf905_interrupt_irq_handler;
res = nrf905_basic_init(NRF905_MODE_RX, a_callback);
if (res != 0)
{
(void)gpio_interrupt_deinit();
g_gpio_irq = NULL;
return 1;
}
...
nrf905_interface_delay_ms(timeout);
...
if (nrf905_basic_deinit() != 0)
{
(void)gpio_interrupt_deinit();
g_gpio_irq = NULL;
}
(void)gpio_interrupt_deinit();
g_gpio_irq = NULL;
...
return 0;
Online-Dokumente: https://www.libdriver.com/docs/nrf905/index.html.
Offline-Dokumente: /doc/html/index.html.
Bitte beachten Sie CONTRIBUTING.md.
Urheberrechte © (c) 2015 - Gegenwart LibDriver Alle Rechte vorbehalten
Die MIT-Lizenz (MIT)
Hiermit wird jeder Person kostenlos die Erlaubnis erteilt, eine Kopie zu erhalten
dieser Software und zugehörigen Dokumentationsdateien (die „Software“) zu behandeln
in der Software ohne Einschränkung, einschließlich, aber nicht beschränkt auf die Rechte
zu verwenden, zu kopieren, zu modifizieren, zusammenzuführen, zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder zu verkaufen
Kopien der Software und Personen, denen die Software gehört, zu gestatten
dazu eingerichtet werden, unter folgenden Bedingungen:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen enthalten sein
Kopien oder wesentliche Teile der Software.
DIE SOFTWARE WIRD "WIE BESEHEN" BEREITGESTELLT, OHNE JEGLICHE GEWÄHRLEISTUNG, AUSDRÜCKLICH ODER
STILLSCHWEIGEND, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT,
EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL DARF DAS
AUTOREN ODER URHEBERRECHTSINHABER HAFTEN FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE
HAFTUNG, OB AUS VERTRAG, DELIKT ODER ANDERWEITIG, ENTSTEHEND AUS,
AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN HANDLUNGEN MIT DER
SOFTWARE.
Bitte senden Sie eine E-Mail an [email protected].