英語| 简体中文| 繁體中文| 日本語| Deutsch | 한국어
NRF24L01+は、超低電力ワイヤレスアプリケーションに適した埋め込みベースバンドプロトコルエンジン(Enhanced ShockBurst™)を備えた単一のチップ2.4GHzトランシーバーです。 NRF24L01+は、2.400-2.4835GHzのワールドワイドISM周波数帯域で動作するように設計されています。NRF24L01+を使用して無線システムを設計するには、MCU(マイクロコントローラー)といくつかの外部パッシブコンポーネントが必要です。 SPIからアクセス可能なレジスタマップには、NRF24L01+のすべての構成レジスタが含まれており、チップのすべての操作モードでアクセスできます。埋め込まれたベースバンドプロトコルエンジン(Enhanced ShockBurst™)は、パケット通信に基づいており、手動での自動運転プロトコル操作までのさまざまなモードをサポートします。内部FIFOは、ラジオフロントエンドとシステムのMCUの間のスムーズなデータフローを保証します。 Enhanced Shock-Burst™は、すべての高速リンクレイヤー操作を処理することによりシステムコストを削減します。ラジオフロントエンドはGFSK変調を使用します。周波数チャネル、出力電源、空気データレートなどのユーザー構成可能なパラメーターを備えています。 NRF24L01+は、250 kbps、1 Mbps、2Mbpsの空気データレートをサポートしています。 2つの電力保存モードと組み合わせた高空気データレートにより、NRF24L01+は非常に低電力設計に非常に適しています。NRF24L01+は、NRF24L01とドロップイン互換性があり、NRF2401A、NRF2402、NRF24E1およびNRF24E2と互換性があります。 NRF24L01+の相互変調と広帯域ブロッキング値は、NRF24L01と比較して大幅に改善されており、NRF24L01+への内部フィルタリングの追加により、RF規制基準を満たすためのマージンが改善されました。 NRF24L01は、ワイヤレスPC周辺機器、マウス、キーボード、リモコン、ゲームコントローラーなどで使用されます。
libdriver nrf24l01は、libdriver.itによって起動されたNRF24L01の完全な関数ドライバーです。
/SRCには、Libdriver NRF24L01ソースファイルが含まれています。
/インターフェイスには、Libdriver NRF24L01 SPIプラットフォーム独立テンプレートが含まれています。
/テストには、Libdriver NRF24L01ドライバーテストコードが含まれ、このコードはChIP必要な関数を簡単にテストできます。
/例には、Libdriver NRF24L01サンプルコードが含まれています。
/docには、libdriver nrf24l01オフラインドキュメントが含まれています。
/データシートにはnrf24l01データシートが含まれています。
/プロジェクトには、一般的なLinuxおよびMCU開発ボードのサンプルコードが含まれています。すべてのプロジェクトはシェルスクリプトを使用してドライバーをデバッグし、詳細指示は各プロジェクトの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。
貢献を参照してください。md。
Copyright(c)2015-現在のLibdriver All Rights Reserved
MITライセンス(MIT)
許可は、コピーを取得している人に無料で許可されます
このソフトウェアと関連するドキュメントファイル(「ソフトウェア」)、取引
制限なしに、制限なしに権利を含むソフトウェアで
使用、コピー、変更、マージ、公開、配布、サブライセンス、および/または販売
ソフトウェアのコピー、およびソフトウェアがある人を許可するために
そうするために提供され、次の条件に従います。
上記の著作権通知とこの許可通知はすべてに含まれるものとする
ソフトウェアのコピーまたはかなりの部分。
ソフトウェアは、いかなる種類の保証も、明示的または
商品性の保証を含むがこれらに限定されない暗黙の、
特定の目的と非侵害へのフィットネス。いかなる場合でも
著者または著作権所有者は、請求、損害賠償、またはその他の責任を負います
契約、不法行為の行動、またはその他の責任は、から生じる、
ソフトウェアまたは使用またはその他の取引に関連して、または
ソフトウェア。
[email protected]に電子メールを送信してください。