Anglais | 简体中文 | 繁體中文 | 日本語 | Deutsch | 한국어
Le NRF24L01 + est un émetteur-récepteur à puce unique à 2,4 GHz avec un moteur de protocole de bande de base intégrée (amélioré Shockburst ™), adapté aux applications sans fil ultra à faible puissance. Le le fonctionnement de la bande de fréquences ISM World World Wild Wide ISM à 2,400 - 2,4835GHz, pour concevoir un système radio avec le NRF24L01 +, vous avez simplement besoin d'un MCU (microcontrôleur) et de quelques composants passifs externes via une interface de NRF24L01 + par une interface sériale (SPI). La carte du registre, qui est accessible via le SPI, contient tous les registres de configuration du NRF24L01 + et est accessible dans tous les modes de fonctionnement de la puce. Le moteur du protocole de bande de base embarquée (amélioration de Shockburst ™) est basé sur la communication des paquets et prend en charge divers modes de l'opération manuelle au fonctionnement avancé du protocole autonome. Les FIFO internes garantissent un flux de données lisse entre la radio frontale et le MCU du système. Améliorer Shock-Burst ™ réduit le coût du système en gérant toutes les opérations de couche de liaison à grande vitesse. La radio frontale utilise la modulation GFSK. Il a des paramètres configurables par l'utilisateur comme le canal de fréquence, la puissance de sortie et le débit de données d'air. NRF24L01 + prend en charge un débit de données d'air de 250 kbps, 1 Mbps et 2 Mbps. Le débit de données d'air élevé combiné avec deux modes de sauvegarde de puissance rend le NRF24L01 + très adapté aux conceptions ultra basses.NRF24L01 + est compatible avec NRF24L01 et en ondes avec NRF2401A, NRF2402, NRF24E1 et NRF24E2. L'intermodulation et les valeurs de blocage à large bande dans NRF24L01 + sont bien améliorées par rapport au NRF24L01 et l'ajout de filtrage interne à NRF24L01 + a amélioré les marges pour respecter les normes de régulation RF. NRF24L01 est utilisé dans les périphériques PC sans fil, la souris, les claviers, les télécommandes, les contrôleurs de jeu, etc.
Libdriver NRF24L01 est le pilote complet de la fonction de NRF24L01 lancé par Libdriver.Il fournit des fonctions de condamnation sans fil, de réception sans fil, etc. Libdriver est conforme à Misra.
/ SRC comprend des fichiers source Libdriver NRF24L01.
/ L'interface inclut le modèle indépendant de la plate-forme SPI LibDriver NRF24L01.
/ Le test comprend le code de test du pilote LibDriver NRF24L01 et ce code peut tester la fonction nécessaire en puce.
/ L'exemple inclut Libdriver NRF24L01 Exemple de code.
/ doc comprend le document hors ligne Libdriver NRF24L01.
/ La fiche technique comprend la fiche technique NRF24L01.
/ Le projet comprend l'exemple de code commun Linux et MCU Development Board. Tous les projets utilisent le script shell pour déboguer le pilote et l'instruction détaillée peut être trouvée dans Readme.md de chaque projet.
/ MISRA comprend les résultats de la numérisation du code MISRA Libdriver.
Modèle indépendant de la plate-forme SPI de référence / interface et terminer votre pilote SPI de plate-forme.
Ajoutez le répertoire / src, le pilote d'interface de votre plateforme et vos propres pilotes à votre projet, si vous souhaitez utiliser l'exemple par défaut, ajoutez le répertoire / exemple à votre projet.
Vous pouvez vous référer aux exemples du répertoire / exemple pour compléter votre propre pilote. Si vous souhaitez utiliser les exemples de programmation par défaut, voici comment les utiliser.
#include "driver_nrf24l01_basic.h"
uint8_t ( * g_gpio_irq )( void ) = NULL ;
uint8_t res ;
uint8_t addr [ 5 ] = NRF24L01_BASIC_DEFAULT_RX_ADDR_0 ;
...
static void a_callback ( uint8_t type , uint8_t num , uint8_t * buf , uint8_t len )
{
switch ( type )
{
case NRF24L01_INTERRUPT_RX_DR :
{
uint8_t i ;
nrf24l01_interface_debug_print ( "nrf24l01: irq receive with pipe %d with %d.n" , num , len );
for ( i = 0 ; i < len ; i ++ )
{
nrf24l01_interface_debug_print ( "0x%02X " , buf [ i ]);
}
nrf24l01_interface_debug_print ( ".n" );
break ;
}
case NRF24L01_INTERRUPT_TX_DS :
{
nrf24l01_interface_debug_print ( "nrf24l01: irq send ok.n" );
break ;
}
case NRF24L01_INTERRUPT_MAX_RT :
{
nrf24l01_interface_debug_print ( "nrf24l01: irq reach max retry times.n" );
break ;
}
case NRF24L01_INTERRUPT_TX_FULL :
{
break ;
}
default :
{
break ;
}
}
}
...
res = gpio_interrupt_init ();
if ( res != 0 )
{
return 1 ;
}
g_gpio_irq = nrf24l01_interrupt_irq_handler ;
res = nrf24l01_basic_init ( NRF24L01_TYPE_TX , a_callback );
if ( res != 0 )
{
( void ) gpio_interrupt_deinit ();
g_gpio_irq = NULL ;
return 1 ;
}
if ( nrf24l01_basic_send (( uint8_t * ) addr , ( uint8_t * ) "123" , 3 ) != 0 );
{
( void ) nrf24l01_basic_deinit ();
( void ) gpio_interrupt_deinit ();
g_gpio_irq = NULL ;
return 1 ;
}
if ( nrf24l01_basic_deinit () != 0 )
{
( void ) gpio_interrupt_deinit ();
g_gpio_irq = NULL ;
return 1 ;
}
( void ) gpio_interrupt_deinit ();
g_gpio_irq = NULL ;
return 0 ; #include "driver_nrf24l01_basic.h"
uint8_t ( * g_gpio_irq )( void ) = NULL ;
uint8_t res ;
uint32_t timeout ;
...
static void a_callback ( uint8_t type , uint8_t num , uint8_t * buf , uint8_t len )
{
switch ( type )
{
case NRF24L01_INTERRUPT_RX_DR :
{
uint8_t i ;
nrf24l01_interface_debug_print ( "nrf24l01: irq receive with pipe %d with %d.n" , num , len );
for ( i = 0 ; i < len ; i ++ )
{
nrf24l01_interface_debug_print ( "0x%02X " , buf [ i ]);
}
nrf24l01_interface_debug_print ( ".n" );
break ;
}
case NRF24L01_INTERRUPT_TX_DS :
{
nrf24l01_interface_debug_print ( "nrf24l01: irq send ok.n" );
break ;
}
case NRF24L01_INTERRUPT_MAX_RT :
{
nrf24l01_interface_debug_print ( "nrf24l01: irq reach max retry times.n" );
break ;
}
case NRF24L01_INTERRUPT_TX_FULL :
{
break ;
}
default :
{
break ;
}
}
}
...
timeout = 5000 ;
res = gpio_interrupt_init ();
if ( res != 0 )
{
return 1 ;
}
g_gpio_irq = nrf24l01_interrupt_irq_handler ;
res = nrf24l01_basic_init ( NRF24L01_TYPE_RX , a_callback );
if ( res != 0 )
{
( void ) gpio_interrupt_deinit ();
g_gpio_irq = NULL ;
return 1 ;
}
nrf24l01_interface_delay_ms ( timeout );
if ( nrf24l01_basic_deinit () != 0 )
{
( void ) gpio_interrupt_deinit ();
g_gpio_irq = NULL ;
return 1 ;
}
( void ) gpio_interrupt_deinit ();
g_gpio_irq = NULL ;
return 0 ;Documents en ligne: https://www.libdriver.com/docs/nrf24l01/index.html.
Documents hors ligne: /doc/html/index.html.
Veuillez vous référer à contribution.md.
Copyright (C) 2015 - Présent libdriver Tous droits réservés
La licence du MIT (MIT)
L'autorisation est accordée gratuitement par la présente à toute personne qui obtient une copie
de ce logiciel et des fichiers de documentation associés (le "logiciel"), pour traiter
dans le logiciel sans restriction, y compris sans limitation, les droits
Pour utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et / ou vendre
copies du logiciel, et pour permettre aux personnes auxquelles le logiciel est
meublé pour le faire, sous réserve des conditions suivantes:
L'avis de droit d'auteur ci-dessus et le présent avis d'autorisation doivent être inclus dans tous
copies ou parties substantielles du logiciel.
Le logiciel est fourni "tel quel", sans garantie d'aucune sorte, express ou
Implicite, y compris mais sans s'y limiter
FACTIONNEMENT dans un but particulier et sans contrefaçon. En aucun cas le ne doit
Les auteurs ou les détenteurs de droits d'auteur sont responsables de toute réclamation, dommage ou autre
Responsabilité, que ce soit dans une action de contrat, délit ou autre, découlant de,
Hors de ou en relation avec le logiciel ou l'utilisation ou d'autres transactions dans le
LOGICIEL.
Veuillez envoyer un e-mail à [email protected].