Inglés | 简体中文 | 繁體中文 | 日本語 | Deutsch | 한국어
El NRF24L01+ es un único transceptor de 2.4GHz de chip con un motor de protocolo de banda base integrado (mejorado Shockburst ™), adecuado para aplicaciones inalámbricas de ultra baja potencia. El NRF24L01+ está diseñado para operar en la banda de frecuencia ISM mundial en 2.400 - 2.4835GHz. Para diseñar un sistema de radio con el NRF24L01+, simplemente necesita un MCU (microcontrolador) y pocos componentes pasivos externos. El mapa de registro, al que se puede acceder a través del SPI, contiene todos los registros de configuración en el NRF24L01+ y es accesible en todos los modos de operación del chip. El motor de protocolo de banda base integrado (mejorado Shockburst ™) se basa en la comunicación de paquetes y admite varios modos, desde operación manual hasta operación avanzada de protocolo autónomo. Los FIFO internos aseguran un flujo de datos suave entre la parte delantera de la radio y el MCU del sistema. Amplica mejorada-Burst ™ reduce el costo del sistema al manejar todas las operaciones de capa de enlace de alta velocidad. La parte delantera de radio utiliza la modulación GFSK. Tiene parámetros configurables de usuarios como canal de frecuencia, potencia de salida y velocidad de datos de aire. NRF24L01+ admite una velocidad de datos de aire de 250 kbps, 1 Mbps y 2Mbps. La alta tasa de datos de aire combinada con dos modos de ahorro de energía hace que el NRF24L01+ sea muy adecuado para diseños de potencia ultra baja. Los valores de intermodulación y bloqueo de banda ancha en NRF24L01+ mejoran mucho en comparación con el NRF24L01 y la adición de filtrado interno a NRF24L01+ ha mejorado los márgenes para cumplir con las normas reguladoras de RF. Los reguladores de voltaje interno aseguran una alta relación de rechazo de suministro de alimentación (PSRR) y un amplio rango de suministro de alimentación. NRF24L01 se usa en periféricos de PC inalámbricos, mouse, teclados, controles remotos, controladores de juegos, etc.
Libdriver NRF24L01 es el controlador de función completa de NRF24L01 lanzado por Libdriver. Proporciona funciones de envío inalámbrico, recepción inalámbrica, etc. Libdriver cumple con Misra.
/SRC incluye los archivos de origen libdriver nrf24l01.
/La interfaz incluye Libdriver NRF24L01 Plantilla independiente de la plataforma SPI.
/Prueba incluye el código de prueba del controlador Libdriver NRF24L01 y este código puede probar la función necesaria del chip simplemente.
/Ejemplo incluye el código de muestra Libdriver NRF24L01.
/Doc incluye el documento fuera de línea Libdriver NRF24L01.
/hoja de datos incluye la hoja de datos NRF24L01.
/El proyecto incluye el código de muestra Common Linux y MCU Development Board. Todos los proyectos usan el script de shell para depurar el controlador y la instrucción detallada se puede encontrar en el readMe.md de cada proyecto.
/Misra incluye los resultados de escaneo del código Libdriver Misra.
Plantilla independiente de la plataforma SPI de referencia /interfaz y finalice el controlador SPI de su plataforma.
Agregue el directorio /SRC, el controlador de interfaz para su plataforma y sus propios controladores a su proyecto, si desea usar los controladores de ejemplo predeterminados, agregue el directorio /Ejemplo a su proyecto.
Puede consultar los ejemplos en el directorio /ejemplo para completar su propio controlador. Si desea utilizar los ejemplos de programación predeterminados, esto es cómo usarlos.
#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 ;Documentos en línea: https://www.libdriver.com/docs/nrf24l01/index.html.
Documentos fuera de línea: /doc/html/index.html.
Consulte la contribución. MD.
Copyright (c) 2015 - Presente Libdriver Todos los derechos reservados
La licencia del MIT (MIT)
Por la presente, se otorga el permiso, de forma gratuita, a cualquier persona que obtenga una copia
de este software y archivos de documentación asociados (el "software"), para tratar
en el software sin restricción, incluidos los derechos de los derechos
para usar, copiar, modificar, fusionar, publicar, distribuir, sublicense y/o vender
copias del software y para permitir a las personas a quienes es el software
proporcionado para hacerlo, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todos
copias o porciones sustanciales del software.
El software se proporciona "tal cual", sin garantía de ningún tipo, expreso o
Implícito, incluidos, entre otros, las garantías de comerciabilidad,
Fitness para un propósito particular y no infracción. En ningún caso el
Los autores o los titulares de derechos de autor seré responsable de cualquier reclamo, daños u otros
Responsabilidad, ya sea en una acción de contrato, agravio o de otra manera, derivada de,
Fuera o en relación con el software o el uso u otros tratos en el
SOFTWARE.
Envíe un correo electrónico a [email protected].