英語| 簡體中文| 繁體中文| 日本語|德意志| 한국어
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]。