Bahasa Inggris | 简体中文 | 繁體中文 | 日本語 | Deutsch | 한국어
NRF24L01+ adalah transceiver chip 2.4GHz tunggal dengan mesin protokol baseband tertanam (Enhanced ShockBurst ™), cocok untuk aplikasi nirkabel daya ultra rendah. NRF24L01+ dirancang untuk beroperasi di pita frekuensi ISM di seluruh dunia pada 2.400 - 2.4835GHz. Untuk merancang sistem radio dengan NRF24L01+, Anda hanya memerlukan MCU (Microcontroller) dan beberapa komponen Pasif eksternal. Peta register, yang dapat diakses melalui SPI, berisi semua register konfigurasi di NRF24L01+ dan dapat diakses dalam semua mode operasi chip. Mesin Protokol Baseband Tertanam (peningkatan ShockBurst ™) didasarkan pada komunikasi paket dan mendukung berbagai mode dari operasi manual hingga operasi protokol otonom lanjutan. FIFO internal memastikan aliran data yang lancar antara ujung depan radio dan MCU sistem. Enhanced Shock-Burst ™ mengurangi biaya sistem dengan menangani semua operasi lapisan tautan kecepatan tinggi. Ujung depan radio menggunakan modulasi GFSK. Ini memiliki parameter yang dapat dikonfigurasi pengguna seperti saluran frekuensi, daya output dan laju data udara. NRF24L01+ mendukung laju data udara 250 kbps, 1 Mbps dan 2Mbps. Tingkat data udara tinggi yang dikombinasikan dengan dua mode penghematan daya membuat NRF24L01+ sangat cocok untuk desain daya ultra rendah.nrf24l01+ kompatibel dengan NRF24L01 dan kompatibel dengan NRF2401A, NRF2402, NRF24E1 dan NRF2401A, NRF2402, NRF24E1 dan NRF2401A. Nilai intermodulasi dan pemblokiran pita lebar di NRF24L01+ jauh lebih baik dibandingkan dengan NRF24L01 dan penambahan penyaringan internal ke NRF24L01+ telah meningkatkan margin untuk memenuhi standar pengaturan RF. NRF24L01 digunakan dalam periferal PC nirkabel, mouse, keyboard, remote, pengontrol game dan sebagainya.
Libdriver NRF24L01 adalah driver fungsi penuh NRF24L01 yang diluncurkan oleh libdriver.it ini menyediakan fungsi pengiriman nirkabel, penerima nirkabel, dll. Libdriver sesuai dengan misra.
/SRC termasuk file sumber Libdriver NRF24L01.
/Antarmuka termasuk libdriver NRF24L01 SPI Platform Independent Template.
/Tes Termasuk Libdriver NRF24L01 Kode Tes Driver dan kode ini dapat menguji fungsi chip yang diperlukan secara sederhana.
/Contohnya termasuk kode sampel Libdriver NRF24L01.
/DOC termasuk dokumen offline Libdriver NRF24L01.
/DataSheet termasuk nrf24l01 data lembar.
/Proyek termasuk kode sampel Dewan Pengembangan Linux dan MCU yang umum. Semua proyek menggunakan skrip shell untuk men -debug pengemudi dan instruksi detail dapat ditemukan di readme.md setiap proyek.
/Misra termasuk hasil pemindaian kode misra libdriver.
Referensi /antarmuka platform SPI Templat independen dan selesaikan driver SPI platform Anda.
Tambahkan direktori /src, driver antarmuka untuk platform Anda, dan driver Anda sendiri ke proyek Anda, jika Anda ingin menggunakan driver contoh default, tambahkan /contoh direktori ke proyek Anda.
Anda dapat merujuk pada contoh di direktori /contoh untuk menyelesaikan driver Anda sendiri. Jika Anda ingin menggunakan contoh pemrograman default, inilah cara menggunakannya.
#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 ;Dokumen online: https://www.libdriver.com/docs/nrf24l01/index.html.
Dokumen offline: /doc/html/index.html.
Silakan merujuk ke Contributing.md.
Hak Cipta (C) 2015 - Libdriver Hak Hak Dilindungi Undang -Undang
Lisensi MIT (MIT)
Izin dengan ini diberikan, gratis, kepada siapa pun yang mendapatkan salinan
dari perangkat lunak ini dan file dokumentasi terkait ("perangkat lunak"), untuk menangani
dalam perangkat lunak tanpa batasan, termasuk tanpa batasan hak
untuk menggunakan, menyalin, memodifikasi, menggabungkan, mempublikasikan, mendistribusikan, sublisense, dan/atau menjual
salinan perangkat lunak, dan untuk mengizinkan orang yang menjadi perangkat lunaknya
dilengkapi untuk melakukannya, tunduk pada kondisi berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus dimasukkan dalam semua
salinan atau bagian substansial dari perangkat lunak.
Perangkat lunak ini disediakan "sebagaimana adanya", tanpa jaminan apa pun, ekspres atau
Tersirat, termasuk tetapi tidak terbatas pada jaminan diperjualbelikan,
Kebugaran untuk tujuan dan non -infringement tertentu. Dalam hal apa pun tidak akan
Penulis atau pemegang hak cipta bertanggung jawab atas klaim, kerusakan atau lainnya
Tanggung jawab, baik dalam tindakan kontrak, gugatan atau sebaliknya, timbul dari,
Di luar atau sehubungan dengan perangkat lunak atau penggunaan atau transaksi lain di
PERANGKAT LUNAK.
Silakan kirim email ke [email protected].