Inglês | 简体中文 | 繁體中文 | 日本語 | Deutsch | 한국어
O NRF24L01+ é um único transceptor de ChIP de 2,4 GHz com um mecanismo de protocolo de banda base incorporado (Enhanced Shockburst ™), adequado para aplicações sem fio ultra baixa. O NRF24L01+ foi projetado para operação na banda de frequência ISM em todo o ISM em 2.400 - 2.4835GHz.Para projetar um sistema de rádio com o NRF24L01+, você simplesmente precisa de um MCU (Microcontroller) e alguns componentes passivos externos. O mapa de registro, que é acessível através do SPI, contém todos os registros de configuração no NRF24L01+ e é acessível em todos os modos de operação do chip. O mecanismo de protocolo de banda base incorporado (Enhanced Shockburst ™) é baseado na comunicação de pacotes e suporta vários modos da operação manual à operação de protocol autônomos avançados. Os FIFOs internos garantem um fluxo de dados suave entre o front end e o MCU do sistema. O aumento do Shock-Burst ™ reduz o custo do sistema lidando com todas as operações da camada de link de alta velocidade. O front end do rádio usa a modulação GFSK. Possui parâmetros configuráveis pelo usuário, como canal de frequência, potência de saída e taxa de dados de ar. NRF24L01+ suporta uma taxa de dados de ar de 250 kbps, 1 Mbps e 2Mbps. A alta taxa de dados do ar combinada com dois modos de economia de energia torna o NRF24L01+ muito adequado para projetos de energia ultra baixa. Os valores de intermodulação e bloqueio de banda ampla no NRF24L01+ são muito aprimorados em comparação com o NRF24L01 e a adição de filtragem interna ao NRF24L01+ melhorou a margem para atender aos padrões regulatórios da RF. O NRF24L01 é usado em periféricos de PC sem fio, mouse, teclados, controles remotos, controladores de jogo e assim por diante.
O LibDriver NRF24L01 é o driver de função completo do NRF24L01 lançado pelo libdriver.it fornece funções de remessa sem fio, recebimento sem fio, etc. Libdriver é compatível com Misra.
/SRC inclui arquivos de origem LibDriver NRF24L01.
/Interface inclui LibDriver NRF24L01 SPI Platform Independent Modelo.
/O teste inclui o código de teste do driver LibDriver NRF24L01 e esse código pode testar a função necessária do chip.
/Exemplo inclui o código de amostra LibDriver NRF24L01.
/DOC inclui o documento offline LibDriver NRF24L01.
/Datahethet Inclui NRF24L01 DATHEET.
/Projeto inclui o código de amostra Common Linux e MCU Development Board. Todos os projetos usam o script do shell para depurar o driver e a instrução detalhada pode ser encontrada no readme.md de cada projeto.
/Misra inclui os resultados da digitalização do código MISRA LibDriver.
Modelo independente da plataforma SPI de referência /interface e termine seu driver SPI da plataforma.
Adicione o diretório /src, o driver de interface da sua plataforma e seus próprios drivers ao seu projeto, se você deseja usar os drivers de exemplo padrão, adicione o diretório /exemplo ao seu projeto.
Você pode consultar os exemplos no diretório /exemplo para concluir seu próprio driver. Se você deseja usar os exemplos de programação padrão, veja como usá -los.
#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 on -line: https://www.libdriver.com/docs/nrf24l01/index.html.
Documentos offline: /doc/html/index.html.
Consulte contribuindo.md.
Copyright (c) 2015 - presente libdriver Todos os direitos reservados
A licença do MIT (MIT)
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia
deste software e arquivos de documentação associados (o "software"), para negociar
no software sem restrição, inclusive sem limitação os direitos
usar, copiar, modificar, mesclar, publicar, distribuir, sublicense e/ou vender
cópias do software e para permitir pessoas a quem o software é
fornecido para fazer isso, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todos
cópias ou partes substanciais do software.
O software é fornecido "como está", sem garantia de qualquer tipo, expresso ou
Implícito, incluindo, entre outros
Aptidão para uma finalidade específica e não comprometimento. Em nenhum caso o
Autores ou detentores de direitos autorais são responsáveis por qualquer reclamação, danos ou outro
Responsabilidade, seja em uma ação de contrato, delito ou não, decorrente de,
Fora ou em conexão com o software ou o uso ou outras negociações no
Software.
Envie um e-mail para [email protected].