英语| 简体中文| 繁体中文| 日本语|德意志| 한국어
NRF24L01+是带有嵌入式基带协议引擎(Enhanced ShockBurst™)的单个芯片2.4GHz收发器,适用于超低功率无线应用。 NRF24L01+设计用于在2.400-2.4835GHz的万维网ISM频带中运行,以设计具有NRF24L01+的无线电系统,您只需要MCU(微控制器)和一些外部被动组件,并且您可以通过NRF24L01+ serial periphore(Spi)进行操作和配置。可以通过SPI访问的寄存器图包含NRF24L01+中的所有配置寄存器,并且在芯片的所有操作模式中都可以访问。嵌入式基带协议引擎(EnhanceSship ShockBurst™)均基于数据包通信,并支持各种模式,从手动操作到先进的自动级协议操作。内部FIFOS可确保无线电前端和系统MCU之间的平滑数据流。通过处理所有高速链路层操作来降低系统成本。无线电前端使用GFSK调制。它具有用户配置的参数,例如频率通道,输出功率和空气数据速率。 NRF24L01+支持250 Kbps,1 Mbps和2Mbps的空气数据速率。高空数据速率与两种节能模式相结合,使NRF24L01+非常适合超低功率设计。NRF24L01+与NRF24L01兼容,并且与NRF2401A,NRF2402,NRF2402,NRF24E1和NRF24E1和NRF24E2兼容。与NRF24L01相比,NRF24L01+中的间隔和宽带阻塞值得到了很大改进,并且在NRF24L01+中添加内部过滤已经提高了满足RF调节标准的利润。内部电压调节器确保高电源供应排位率(PSRR高电量供应率(PSRR)和大型电源供应范围和大型电源。 NRF24L01用于无线PC外围设备,鼠标,键盘,遥控器,游戏控制器等。
libdriver nrf24l01是libdriver启动的NRF24L01的完整功能驱动程序。
/src包括libdriver nrf24l01源文件。
/接口包括Libdriver NRF24L01 SPI平台独立模板。
/测试包括Libdriver NRF24L01驱动程序测试代码,此代码可以简单地测试芯片所需的函数。
/示例包括libdriver NRF24L01样本代码。
/DOC包括Libdriver NRF24L01离线文档。
/数据表包括NRF24L01数据表。
/项目包括通用Linux和MCU开发委员会样本代码。所有项目都使用Shell脚本来调试驱动程序,并且可以在每个项目的readme.md中找到详细说明。
/Misra包括Libdriver Misra代码扫描结果。
参考 /接口SPI平台独立模板并完成平台SPI驱动程序。
将 /src目录,平台的接口驱动程序以及您自己的驱动程序添加到项目中,如果您想使用默认示例驱动程序,请在项目中添加 /示例目录。
您可以参考 /示例目录中的示例以完成自己的驱动程序。如果您想使用默认的编程示例,则是如何使用它们的方法。
#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 ;在线文档:https://www.libdriver.com/docs/nrf24l01/index.html。
离线文档:/doc/html/index.html。
请参考贡献。
版权(c)2015年 - 目前的libdriver保留所有权利
麻省理工学院许可证(MIT)
特此免费授予任何获得副本的人的许可
该软件和相关文档文件(“软件”)
在软件中无限制的软件中,包括无限制的权利
使用,复制,修改,合并,发布,分发,转销和/或出售
软件的副本,并允许软件的人
符合以下条件的规定,可以这样做:
上述版权通知和此许可通知应包含
该软件的副本或大量部分。
该软件是“原样”提供的,没有任何形式的保证,明确或
暗示,包括但不限于适销性保证,
适合特定目的和非侵扰的适合度。在任何情况下都不会
作者或版权持有人应对任何索赔,损害赔偿或其他责任负责
责任,无论是在合同,侵权的诉讼中还是其他责任,是由
与软件或使用或与使用或其他交易有关
软件。
请发送电子邮件至[email protected]。