NRF24LE1+超小体积模块/新品!/ 低功耗/体积 15.2*15.2MM/U1//3C数码配件市场/st3

当前位置:st3 > NRF24LE1+超小体积模块/新品!/ 低功耗/体积 15.2*15.2MM/U1 >

NRF24LE1+超小体积模块/新品!/ 低功耗/体积 15.2*15.2MM/U1

NRF24LE1+超小体积模块/新品!/ 低功耗/体积 15.2*15.2MM/U1

商品名称:NRF24LE1+超小体积模块/新品!/ 低功耗/体积 15.2*15.2MM/U1

商品销量:

收藏数量:454

店铺名称: 电子引领世界

旺旺: liufangfang150

公司名称:

行业: /3C数码配件市场

地址: 广东深圳

店铺名称:电子引领世界

NRF24LE1 超小体积模块 体积只有15.2*15.2MM 配有陶瓷天线  

nRF24LE1采用了Nordic最新的无线和超低功耗技术,在一个极小封装中集成了包括2.4GHz无线传输,增强型51 Flask高速单片机,丰富外设及接口等的单片Flash芯片,是一个综合了性能及成本的完美结合,很适合应用于各种2.4GHz的产品设计。

应用

 无线鼠标,无线键盘,无线摇杆
 玩具,RFID,无线遥控,医学参数监测
 无线语音,工业控制及无线数据采集
 主要特性
 ■内嵌2.4Ghz低功耗无线收发内核nRF24L01P,250 kbps, 1 Mbps,2 Mbps空中速率
 ■高性能51内核(12倍工业标准51速度),16 kbytes Flash, 1 kbyte data RAM, 1 kbyte NV data RAM
 ■具有丰富的外设资源,内置128 bit AES硬件加密,32位硬件乘除协处理器,,6-12位ADC,两路PWM,I2C,UART,硬件随机数产生器件,WDT,RTC,模拟比较器…
 ■提供QFN24,QFN32,QFN48多种封装,提供灵活应用选择
 ■灵活高效的开发手段,支持Keil C,ISP下载,是开发无线外设,RFID,无线数传等有力工具及平台

 发送程序

/*********************************************************************
功能:
 RFID TARGET发射程序
说明:
 本程序采用定时2秒发射ID一次,发射完毕进入低功耗模式,低功耗电流3uA
 ID长度为6 byte
**********************************************************************/


#include
#include
#include "API.h"

//#define PIN24
#define PIN32
//#define PIN48

#ifdef  PIN24
sbit S3  = P0^6;                                // 1/0=未按/按下
sbit S2  = P0^4;                                // 1/0=未按/按下
sbit S1  = P0^3;                                // 1/0=未按/按下

sbit LED3 = P0^2;                           // 1/0=灭/亮
sbit LED2 = P0^1;                               // 1/0=灭/亮
sbit LED1 = P0^0;                               // 1/0=灭/亮

#define p0dir 0xd8
#define p1dir 0xff
#endif

#ifdef  PIN32
sbit S3  = P1^4;                                // 1/0=未按/按下
sbit S2  = P1^3;                                // 1/0=未按/按下
sbit S1  = P1^2;                                // 1/0=未按/按下

sbit LED3 = P0^1;                               // 1/0=灭/亮
sbit LED2 = P0^2;                               // 1/0=灭/亮
sbit LED1 = P0^0;                               // 1/0=灭/亮

#define p0dir 0xf0
#define p1dir 0xff
#endif

#ifdef  PIN48
sbit S3  = P0^7;                                // 1/0=未按/按下
sbit S2  = P0^6;                                // 1/0=未按/按下
sbit S1  = P0^5;                                // 1/0=未按/按下

sbit LED3 = P0^2;                               // 1/0=灭/亮
sbit LED2 = P0^1;                               // 1/0=灭/亮
sbit LED1 = P0^0;                               // 1/0=灭/亮

#define p0dir 0xf0
#define p1dir 0x02
#endif

#define INTERRUPT_RFIRQ 9
#define INTERRUPT_TICK  13 

#define TX_ADR_WIDTH    5        // RF收发地址共5 bytes
#define TX_PLOAD_WIDTH  20       // 数据包长度为20 bytes

uint8_t const TX_ADDRESS[TX_ADR_WIDTH]  = {0x34,0x56,0x78,0x90,0x12}; // 定义RF收发地址

uint8_t data id_buf[TX_PLOAD_WIDTH]={0xff, 0x01, 0x02, 0x03, 0x04, 0x05};

uint8_t bdata sta;
sbit RX_DR =sta^6;
sbit TX_DS =sta^5;
sbit MAX_RT =sta^4;

/**************************************************
功能:延时
**************************************************/
void delay(uint16_t x)
{
    uint16_t i,j;
    i=0;
    for(i=0;i    {
       j=108;
           ;
       while(j--);
    }
}
/**************************************************
功能:硬件SPI读写
**************************************************/
uint8_t SPI_RW(uint8_t value)
{
  SPIRDAT = value;
                   
  while(!(SPIRSTAT & 0x02));       // 等待SPI传输完成

  return SPIRDAT;                  // 返回读出值
}
/**************************************************
功能:写RF寄存器,读RF状态值
**************************************************/
uint8_t SPI_RW_Reg(uint8_t reg, uint8_t value)
{
 uint8_t status;

   RFCSN = 0;                    
   status = SPI_RW(reg);           // 选择RF寄存器
   SPI_RW(value);                  // 写入数据
   RFCSN = 1;                    

   return(status);                 // 返回RF状态值
}
/**************************************************
功能:读RF寄存器
**************************************************/
uint8_t SPI_Read(uint8_t reg)
{
 uint8_t reg_val;

   RFCSN = 0;                   
   SPI_RW(reg);                 // 选择RF寄存器
   reg_val = SPI_RW(0);         // 读出数据
   RFCSN = 1;                   

   return(reg_val);             // 返回RF状态值
}
/**************************************************
功能:把缓冲区的多字节数据写到RF寄存器
**************************************************/
uint8_t SPI_Write_Buf(uint8_t reg, uint8_t *pBuf, uint8_t bytes)
{
 uint8_t status,byte_ctr;

   RFCSN = 0;                     
   status = SPI_RW(reg);         // 选择RF寄存器
   for(byte_ctr=0; byte_ctr     SPI_RW(*pBuf++);
   RFCSN = 1;                    
   return(status);               // 返回RF状态值
}
/**************************************************
功能:设置为掉电模式
**************************************************/
void PD_Mode(void)
{
 RFCE=0;
   SPI_RW_Reg(WRITE_REG + CONFIG, 0x0c);    // PWR_UP=0
}
/**************************************************
功能:设置为发射模式
**************************************************/
void TX_Mode(void)
{
   SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);        // 上电, CRC为2 bytes,接收模式,允许RX_DR产生中断
   SPI_Write_Buf(WR_TX_PLOAD, id_buf, TX_PLOAD_WIDTH); // 写数据到FIFO
 RFCE=1;            // 启动发射
 delay(10);           // 发射脉冲
 RFCE=0;            
}
/**************************************************
功能:RF初始化
**************************************************/
void rf_init(void)
{
   RFCE = 0;                                     // RF关闭
   RFCKEN = 1;                                   // 启动RF时钟
   RF = 1;                                       // 允许RF中断

 delay(1000);

   SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);     // 设置发射地址长度
   SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 设置接收地址长度

   SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);         // 启动自动应答功能
   SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);     // PIPE0接收数据
   SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a);    // 自动重传10次
   SPI_RW_Reg(WRITE_REG + RF_CH, 40);           // RF频率2440MHz
   SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x0f);      // 发射功率0dBm, 传输速率2Mbps,
   SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  // PIPE0 接收数据包长度   
}
/**************************************************
功能:RF中断服务程序
**************************************************/
void RF_IRQ(void) interrupt INTERRUPT_RFIRQ
{
 sta=SPI_Read(STATUS);        // 读出状态值
 SPI_RW_Reg(WRITE_REG+STATUS,0x70);     // 清除所有中断标志
}

/**************************************************
功能:RTC2初始化
**************************************************/
void rtc2_init(void)
{
 CLKLFCTRL=0x01;             // 使用RC 32KHz时钟
 RTC2CMP0=0xff;          // 定时2秒
 RTC2CMP1=0xff;
 RTC2CON=0x06;          // 比较模式
 WUIRQ=1;           // 允许TICK中断
}
/**************************************************
功能:启动RTC2
**************************************************/
void rtc2_on(void)
{
 RTC2CON |=0x01;         
}
/**************************************************
功能:关闭RTC2
**************************************************/
void rtc2_off(void)
{                
 RTC2CON &=~0x01;            
}
/**************************************************
功能:RTC2中断服务程序
**************************************************/
void RTC2_IRQ(void) interrupt INTERRUPT_TICK
{
 LED2=!LED2;              
}                  
/**************************************************
功能:I/O口初始化
**************************************************/
void io_init(void)
{
   P0DIR = p0dir;           // 设定I/O口输入输出
   P1DIR = p1dir;     

 LED1=LED2=LED3=0;       // 灯全亮
 delay(1000);
 LED1=LED2=LED3=1;       // 灯全灭                 

/**************************************************
功能:主程序
**************************************************/
void main(void)
{
 io_init();         // I/O口初始化
 rf_init();         // RF初始化                           
   EA=1;                                       // 允许中断 
 rtc2_init();
            // RTC2初始化
 while(1)
 {
  rtc2_off();           // 关RTC2
  TX_Mode();        // 发射数据
  while (!(TX_DS|MAX_RT));    // 等待发射结束
  sta = 0;
  PD_Mode();        // 关RF
  rtc2_on();        // 开RTC2
  PWRDWN = 0x04;       // 进入低功耗模式,等待RTC2唤醒
  delay(10);
 }
}
                  

 

接收程序

/*********************************************************************
功能:
 RFID READER接收程序
说明:
 收到数据显示灯闪烁一下,并通过串口上显示ID值
**********************************************************************/

#include
#include
#include "API.h"

//#define PIN24
#define PIN32
//#define PIN48

#ifdef  PIN24
sbit S3  = P0^6;                                // 1/0=未按/按下
sbit S2  = P0^4;                                // 1/0=未按/按下
sbit S1  = P0^3;                                // 1/0=未按/按下

sbit LED3 = P0^2;                           // 1/0=灭/亮
sbit LED2 = P0^1;                               // 1/0=灭/亮
sbit LED1 = P0^0;                               // 1/0=灭/亮

#define p0dir 0xd8
#define p1dir 0xff
#endif

#ifdef  PIN32
sbit S3  = P1^4;                                // 1/0=未按/按下
sbit S2  = P1^3;                                // 1/0=未按/按下
sbit S1  = P1^2;                                // 1/0=未按/按下

sbit LED3 = P0^1;                               // 1/0=灭/亮
sbit LED2 = P0^2;                               // 1/0=灭/亮
sbit LED1 = P0^0;                               // 1/0=灭/亮

#define p0dir 0xf0
#define p1dir 0xff
#endif

#ifdef  PIN48
sbit S3  = P0^7;                                // 1/0=未按/按下
sbit S2  = P0^6;                                // 1/0=未按/按下
sbit S1  = P0^5;                                // 1/0=未按/按下

sbit LED3 = P0^2;                               // 1/0=灭/亮
sbit LED2 = P0^1;                               // 1/0=灭/亮
sbit LED1 = P0^0;                               // 1/0=灭/亮

#define p0dir 0xf0
#define p1dir 0x02
#endif

#define INTERRUPT_RFIRQ 9

#define TX_ADR_WIDTH    5        // RF收发地址共5 bytes
#define TX_PLOAD_WIDTH  20       // 数据包长度为20 bytes

uint8_t const TX_ADDRESS[TX_ADR_WIDTH]  = {0x34,0x56,0x78,0x90,0x12}; // 定义RF收发地址

uint8_t data rx_buf[TX_PLOAD_WIDTH];

uint8_t bdata sta;
sbit RX_DR =sta^6;
sbit TX_DS =sta^5;
sbit MAX_RT =sta^4;
/**************************************************
功能:延时
**************************************************/
void delay(uint16_t x)
{
    uint16_t i,j;
    i=0;
    for(i=0;i    {
       j=108;
           ;
       while(j--);
    }
}
/**************************************************
功能:硬件SPI读写
**************************************************/
uint8_t SPI_RW(uint8_t value)
{
  SPIRDAT = value;
                   
  while(!(SPIRSTAT & 0x02));       // 等待SPI传输完成

  return SPIRDAT;                  // 返回读出值
}
/**************************************************
功能:写RF寄存器,读RF状态值
**************************************************/
uint8_t SPI_RW_Reg(uint8_t reg, uint8_t value)
{
 uint8_t status;

   RFCSN = 0;                    
   status = SPI_RW(reg);           // 选择RF寄存器
   SPI_RW(value);                  // 写入数据
   RFCSN = 1;                    

   return(status);                 // 返回RF状态值
}
/**************************************************
功能:读RF寄存器
**************************************************/
uint8_t SPI_Read(uint8_t reg)
{
 uint8_t reg_val;

   RFCSN = 0;                   
   SPI_RW(reg);                 // 选择RF寄存器
   reg_val = SPI_RW(0);         // 读出数据
   RFCSN = 1;                   

   return(reg_val);             // 返回RF状态值
}
/**************************************************
功能:读RF寄存器多字节数据到缓冲区
**************************************************/
uint8_t SPI_Read_Buf(uint8_t reg, uint8_t *pBuf, uint8_t bytes)
{
 uint8_t status,byte_ctr;

   RFCSN = 0;                      
   status = SPI_RW(reg);           // 选择RF寄存器

   for(byte_ctr=0;byte_ctr     pBuf[byte_ctr] = SPI_RW(0);       // 连接读出数据

   RFCSN = 1;                         

   return(status);                       // 返回RF状态值
}
/**************************************************
功能:把缓冲区的多字节数据写到RF寄存器
**************************************************/
uint8_t SPI_Write_Buf(uint8_t reg, uint8_t *pBuf, uint8_t bytes)
{
 uint8_t status,byte_ctr;

   RFCSN = 0;                     
   status = SPI_RW(reg);         // 选择RF寄存器
   for(byte_ctr=0; byte_ctr     SPI_RW(*pBuf++);
   RFCSN = 1;                    
   return(status);               // 返回RF状态值
}

/**************************************************
功能:设置为接收模式
**************************************************/
void RX_Mode(void)
{
 RFCE=0;
   SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);    // 上电, CRC为2 bytes,接收模式,允许RX_DR产生中断
   RFCE = 1;          // 启动接收模式
}
/**************************************************
功能:RF初始化
**************************************************/
void rf_init(void)
{
   RFCE = 0;                                     // RF关闭
   RFCKEN = 1;                                   // 启动RF时钟
   RF = 1;                                       // 允许RF中断
 delay(1000); 
   SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);     // 设置发射地址长度
   SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 设置接收地址长度
   SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);         // 启动自动应答功能
   SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);     // PIPE0接收数据
   SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a);    // 自动重传10次
   SPI_RW_Reg(WRITE_REG + RF_CH, 40);           // RF频率2440MHz
   SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x0f);      // 发射功率0dBm, 传输速率2Mbps,
   SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  // PIPE0 接收数据包长度
}
/**************************************************
功能:RF中断服务程序
**************************************************/
void RF_IRQ(void) interrupt INTERRUPT_RFIRQ
{
 sta=SPI_Read(STATUS);        // 读出状态值

 if(RX_DR)         
 {
  SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// 读出FIFO的数据
  SPI_RW_Reg(FLUSH_RX,0);       // 清除RX的FIFO
 }

 SPI_RW_Reg(WRITE_REG+STATUS,0x70);     // 清除所有中断标志
}
/**************************************************
功能:串口初始化子程序
说明:波特率19.2K,使用内部波特率发生器
**************************************************/
void uart_init(void)
{
    ES0 = 0;                          // 关UART0中断
    REN0 = 1;                         // 允许接收
    SM0 = 0;                          // 串口模式1,8bit可变波特率
    SM1 = 1;                  
    PCON |= 0x80;                     // SMOD = 1
    ADCON |= 0x80;                    // 选择内部波特率发生器

    S0RELL = 0xe6;                    // 波特率19.2K(十进制998=十六进制0x03e6)
    S0RELH = 0x03;
    TI0 = 0;           // 清发送完成标志
 S0BUF=0x99;           // 送初值
}
/**************************************************
功能:向串口发送1 byte数据
**************************************************/
void uart_putchar(uint8_t x)
{
 while (!TI0);        // 等待发送完成
 TI0=0;          // 清发送完成标志
 S0BUF=x;         // 发送数据
}
/**************************************************
功能:I/O口初始化
**************************************************/
void io_init(void)
{
   P0DIR = p0dir;           // 设定I/O口输入输出
   P1DIR = p1dir;     

 LED1=LED2=LED3=0;       // 灯全亮
 delay(1000);
 LED1=LED2=LED3=1;       // 灯全灭                 

/**************************************************
功能:主程序
**************************************************/
void main(void)
{
 io_init();         // I/O口初始化
 uart_init();                             // 串口初始化
 rf_init();         // RF初始化                           
   EA=1;                                       // 允许中断

 RX_Mode();         //进入接收模式

 while(1)
 {
  if(RX_DR)        // 数据已收到
  {
   sta=0;

   LED2=0;

   uart_putchar(rx_buf[0]);   // 显示所有ID值
   uart_putchar(rx_buf[1]);
   uart_putchar(rx_buf[2]);
   uart_putchar(rx_buf[3]);
   uart_putchar(rx_buf[4]);
   uart_putchar(rx_buf[5]);

   delay(1000);

   LED1=LED2=LED3=1;     // 灯全灭


山东烟台 ID667167 :
灵芝孢子粉功效有哪些灵芝孢子粉贵吗
评论时间:2025年05月05日

河南三门峡 ID838207 :
灵芝孢子粉多钱一斤灵芝破壁孢子粉保质期
评论时间:2025年05月05日

河南安阳 ID167119 :
灵芝破壁孢子粉品牌灵芝孢子粉好
评论时间:2025年05月05日


Q:维护商家与用户的合法权益。
A:用户发现组织的活动中商家存在价格欺诈行为的,可以随时向举报。将不断提高价格管理水平,并积极向商家宣导价格法的相关规定,维护商家与用户的合法权益。

Q:有权按照活动规则对商家标示的价格进行核对。
A:商家参加组织的活动应确保在其承诺的该宝贝价格有效期内开展,不得在期间擅自提价、擅自提前结束活动;如宝贝有数量限制的还必须明示参加活动的宝贝数量。有权按照活动规则对商家标示的价格进行核对。如商家违反价格承诺,可在核实情况后从商家的保证金中予以冻结、划扣以便向所有购买该宝贝者进行赔付,因此产生的所有费用及损失由商家自行承担。

Q:标明被比较价格的含义
A:商家自主选择令宝贝展现多个价格的,为商家在详情页预留了充分的自定义说明空间,商家应当于详情页醒目位置准确标明被比较价格的含义,并确保被比较价格的真实性。*

热销商品

新品 DA14580蓝牙模块 /低功耗 /兼容NRF51822 模块/透传模块特价促销SI4432无线模块/SI4432-B1-FMR/470MHZ/868MHZ/915MHZNEC MINICUBE2 仿真+烧写 NEC闪存编程器NRF24LE1+超小体积模块/新品!/ 低功耗/体积 15.2*15.2MM/U1NRF51822 小体积蓝牙 4.0模块/CC2540/量大有定做 BIE应用SI4438无线模块/433MHZ/SI4463 /SI4432/超远距离模块NRF24L01+PA+LNA 板载陶瓷天线/高性价比 /小体积无线DMX512收发器 摇头灯舞台灯DMX信号发射器/可接受定做超低价NRF24L01+PA+LNA无线数传模块/超远距离/工业级质量/NORDICSX1276无线数传模组/5000米距离/电力工业模块/470M/可定做RFM95

推荐商品

生日求婚表白摆图蜡烛专用防风杯 包邮 CY香薰蜡烛 小蜡烛 无烟 蜡烛 浪漫 创意 求婚表白蜡烛 生日 杭泰厨房电子脉冲点火器 天然气煤气灶点火枪 点火棒 安全打火器 包邮50个蜡烛 摆图无烟茶蜡批发 摆心形 表白 创意 浪漫生日套餐 摆图生日表白求婚纪念专用仿真玫瑰花瓣 香薰驱蚊蜡烛 欧式家居熏香无烟香茅香味香熏精油玻璃杯蜡烛批发 情人节蜡烛浪漫套餐生日蜡烛求婚蜡烛玫瑰蜡烛套餐心形表白蜡烛创 新品限量家居酒店夏季户外丛林儿童强效植物驱蚊防蚊无烟铁桶蜡烛 家居香薰蜡烛无烟欧式创意大蜡烛批发婚庆烛光熏香浪漫精油柱蜡 鑫康乐加厚型一次性杯子塑料一次性饮水杯子批发定制定做 家用香茅精油驱蚊蜡烛无烟香薰蜡烛室内装饰欧式圆柱粗大蜡烛批发 日立ex zaxis 60 70 80 225 前档玻璃窗框架滑轮/滚轮 原装 小松 56 60 70 140 200 210 220 240 300 350 360 450 -7 -8钥匙 小松50 40 78 128 220 228 75 uu/us/mr- 2-3-5 驾驶室车门外把手 卡特320D 323 324 325 329 330 336 345 307 神钢60-8 空调出风口 小松60-5 100 110 120 200 210 220 -5 保险丝盖 小松60 70 120 200 210 220 240 300 350 360 450 -6-7-8雨刮片器 小松PC60-7 120 200-6 210 220 300 350 -6 驾驶室车门锁 锁块芯 卡特305 306 307 311 312 315 317 70 200 120 b/c/d 放油阀开关 加藤HD1638 2048 1023 512 820 823 308 1430 -R -V 脚踏板皮胶套 住友100 120 200 210 220 230 250 260 300 330 手喷漆 自喷漆 大宇斗山DH55-V 55-7 60-7 80-7 80G 空气 预滤器 滤清器 过滤器 小松120 130 140 200 210 220 230 300 360-6-7-8电瓶箱/工具箱锁 大宇斗山215 220 225 258-5/-7发动机缸盖气门室密封胶条胶圈胶垫 柳工906 907 908 915 922 205 200 230 225 c/d 液压油箱油位标尺 大宇55 60 80 -5-7 液压油箱油位计 透明尺 观察尺 测量油尺 小松60 100 110 130 200 210 220 300 -5 发动机消声器烟通排气筒 大宇斗山80 150 200 220 258 300 500-5-7-9 脚踏板铁支架胶皮套 毛绒沙发床头抱枕靠垫办公室护腰靠枕腰垫椅子靠背垫加厚拆洗汽车