ภาษาอังกฤษ | 简体中文 | 繁體中文 | 日本語 | Deutsch | 한국어
NRF24L01+ เป็นตัวรับส่งสัญญาณชิป 2.4GHz เดียวที่มีเครื่องยนต์โปรโตคอลเบสแบนด์แบบฝังตัว (ENVERNED SHOCKBURST ™) เหมาะสำหรับการใช้งานไร้สายพลังงานต่ำพิเศษ NRF24L01+ ได้รับการออกแบบมาสำหรับการทำงานในแถบความถี่ World Wide ISM ที่ 2.400 - 2.4835GHz ในการออกแบบระบบวิทยุด้วย NRF24L01+ คุณเพียงแค่ต้องใช้ MCU (ไมโครคอนโทรลเลอร์) แผนที่การลงทะเบียนซึ่งสามารถเข้าถึงได้ผ่าน SPI มีการลงทะเบียนการกำหนดค่าทั้งหมดใน NRF24L01+ และสามารถเข้าถึงได้ในทุกโหมดการทำงานของชิปเครื่องยนต์โปรโตคอลเบสเบสแบบฝังตัว FIFOs ภายในให้แน่ใจว่าการไหลของข้อมูลที่ราบรื่นระหว่างส่วนหน้าวิทยุและ MCU ของระบบ การปรับปรุงการช็อตบอร์ด™ช่วยลดค่าใช้จ่ายของระบบโดยการจัดการการดำเนินการเลเยอร์ลิงค์ความเร็วสูงทั้งหมดส่วนหน้าวิทยุใช้การปรับ GFSK มันมีพารามิเตอร์ที่ผู้ใช้กำหนดค่าได้เช่นช่องความถี่พลังงานเอาต์พุตและอัตราข้อมูลอากาศ NRF24L01+ รองรับอัตราข้อมูลอากาศ 250 Kbps, 1 Mbps และ 2Mbps อัตราข้อมูลอากาศสูงรวมกับโหมดการประหยัดพลังงานสองโหมดทำให้ NRF24L01+ เหมาะมากสำหรับการออกแบบพลังงานต่ำพิเศษ NRF24L01+ นั้นเข้ากันได้กับ NRF24L01 และ ON-AIR ที่เข้ากันได้กับ NRF2401A, NRF2402, NRF24E1 ค่าการทำงานระหว่างกันและการปิดกั้น wideband ใน NRF24L01+ ได้รับการปรับปรุงอย่างมากเมื่อเปรียบเทียบกับ NRF24L01 และการเพิ่มการกรองภายในไปยัง NRF24L01+ ได้ปรับปรุงระยะขอบสำหรับมาตรฐานการควบคุม RF NRF24L01 ใช้ในอุปกรณ์ต่อพ่วงพีซีไร้สายเมาส์คีย์บอร์ดรีโมทคอนโทรลเลอร์เกมและอื่น ๆ
Libdriver Nrf24L01 เป็นไดรเวอร์ฟังก์ชั่นเต็มรูปแบบของ NRF24L01 ที่เปิดตัวโดย libdriver.it ให้ฟังก์ชั่นการส่งแบบไร้สายการรับแบบไร้สาย ฯลฯ libdriver เป็นไปตามมาตรฐาน MISRA
/SRC รวมไฟล์ต้นฉบับ libdriver NRF24L01
/อินเทอร์เฟซรวมถึง Libdriver Nrf24L01 เทมเพลตอิสระแพลตฟอร์มอิสระ
/การทดสอบรวมถึงรหัสทดสอบไดรเวอร์ Libdriver Nrf24L01 และรหัสนี้สามารถทดสอบฟังก์ชั่นที่จำเป็นของชิปได้ง่ายๆ
/ตัวอย่างรวมถึงรหัสตัวอย่าง Libdriver Nrf24L01
/เอกสารรวมถึงเอกสารออฟไลน์ NRF24L01
/แผ่นข้อมูลมีแผ่นข้อมูล NRF24L01
/โครงการรวมถึงรหัสตัวอย่างบอร์ดการพัฒนา Linux และ MCU ทั่วไป โครงการทั้งหมดใช้เชลล์สคริปต์เพื่อแก้ไขข้อบกพร่องของไดรเวอร์และคำสั่งรายละเอียดสามารถพบได้ใน readme.md ของแต่ละโครงการ
/MISRA รวมถึงผลการสแกนรหัส MISRA Libdriver
แพลตฟอร์มอ้างอิง /อินเทอร์เฟซ 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
โปรดดูที่ Inturning.md
ลิขสิทธิ์ (c) 2015 - ปัจจุบัน libdriver สงวนลิขสิทธิ์
ใบอนุญาต MIT (MIT)
ได้รับอนุญาตโดยไม่ต้องเสียค่าใช้จ่ายสำหรับบุคคลใด ๆ ที่ได้รับสำเนา
ของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") เพื่อจัดการ
ในซอฟต์แวร์โดยไม่มีข้อ จำกัด รวมถึง แต่ไม่ จำกัด เฉพาะสิทธิ์
หากต้องการใช้, คัดลอก, แก้ไข, ผสาน, เผยแพร่, แจกจ่าย, sublicense, และ/หรือขาย
สำเนาซอฟต์แวร์และอนุญาตให้บุคคลที่ซอฟต์แวร์เป็นใคร
ได้รับการตกแต่งให้ทำเช่นนั้นขึ้นอยู่กับเงื่อนไขดังต่อไปนี้:
ประกาศลิขสิทธิ์ข้างต้นและการแจ้งเตือนนี้จะรวมอยู่ในทั้งหมด
สำเนาหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์มีให้ "ตามสภาพ" โดยไม่มีการรับประกันใด ๆ Express หรือ
โดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันการค้า
ความฟิตสำหรับวัตถุประสงค์เฉพาะและการไม่เข้าร่วม ไม่ว่าในกรณีใด
ผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดชอบต่อการเรียกร้องความเสียหายหรืออื่น ๆ
ความรับผิดไม่ว่าจะเป็นการกระทำของสัญญาการละเมิดหรืออื่น ๆ ที่เกิดขึ้นจาก
ออกจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือการติดต่ออื่น ๆ ใน
ซอฟต์แวร์.
กรุณาส่งอีเมลไปที่ [email protected]