


NRF2401无线模块的驱动程序源码,能够用于STC,51等单片机驱动,具有很高的学习参考利用价值。
1.nRF2401是3.3V供电的,电压过低或过高都会对通信造成影响,要么不能完全通信要么断断续续地通信,至于怎么稳压到3.3V,可以采用稳压二级管,可以使用LM317,这几种方法都试用过,都可行。
2.一般的微处理器的I/O口电压为5V,而2401的I/O口电压为3.3V,若直接相连,容易烧坏2401,可以采用串连2K电阻的方法,也可以使用3.3V和5V电平转换芯片如74LVX3245。
3.至于程序部分,一两句话也说不清楚,请仔细阅读nRF2401的使用说明书。下面公布一段2401程序仅供参考,此程序多次修改,久经考验,应该没有问题。
2401.h下面的代码
//说明:nRF2401 CE脚控制收发使能,CS控制片选,均为高电平有效
//===============引脚定义=======================
#define nRF2401_CE_PORT PORTD.1//
#define nRF2401_CE_DDR DDRD.1//
#define nRF2401_PWR_PORT PORTD.0//
#define nRF2401_PWR_DDR DDRD.0//
#define nRF2401_CS_PORT PORTD.3//
#define nRF2401_CS_DDR DDRD.3//
#define nRF2401_CLK1_PORT PORTD.5//
#define nRF2401_CLK1_DDR DDRD.5//
#define nRF2401_DATA1_PORT PORTD.4
#define nRF2401_DATA1_DDR DDRD.4
#define nRF2401_DATA1_PIN PIND.4
#define nRF2401_DR1_PORT PORTD.2//
#define nRF2401_DR1_DDR DDRD.2//
#define nRF2401_DR1_PIN PIND.2//
unsigned char Address[4]={0x00,0x00,0x00,0x99};
//===================配置字定义================================
unsigned char nRF2401_InitData[15]={ //设配置字 //test
8,8, //通道2与通道1数据宽度设置为8位
0,0,0,0,57, //通道2接收地址
0x00,0x00,0x00,0x00,0x99, //通道1接收地址
0x83, //通道1和通道2地址宽度为32位,开CRC,16位,CRC 校验
0x6F, //4F //双频道功能禁用,ShockBurst mode,传输速率1M,晶振频率16M
0x02 //Channel = 2400MHz + RF_CH * 1.0MHz ,发送模式
}; //0:Tx 1:Rx
//===========================================================
//===================发送单字节数据==============================
void nRF2401_SendByte(unsigned char Data)
{
unsigned char i;
nRF2401_DATA1_DDR = 1;
for(i=0;i<8;i++)
{
if((Data&0x80)!=0)
nRF2401_DATA1_PORT=1;
else nRF2401_DATA1_PORT=0;
delay_us(1); //最小500ns
nRF2401_CLK1_PORT=1;
delay_us(1);//最小500ns
Data<<=1;
nRF2401_CLK1_PORT=0;
delay_us(1);
}
}
//===========================================================
//==================从nRF2401A数据缓冲区读取数据==================
void nRF2401_GetData(unsigned char *DataBuffer)
{
unsigned char i=0,temp=0;
nRF2401_DATA1_DDR = 0;//数据输入
while(nRF2401_DR1_PIN)
{
for(i=0;i<8;i++)
{
temp<<=1;
nRF2401_CLK1_PORT=1;delay_us(1);
temp|=nRF2401_DATA1_PIN;
nRF2401_CLK1_PORT=0;delay_us(1);
}
}
*DataBuffer=temp;
}
//=====================nRF2401A发送/接收方式设置=================
//Mode=0:发送方式 Mode=1:接收方式
void nRF2401_SetMode(unsigned char Mode)
{
nRF2401_PWR_PORT=1;nRF2401_CE_PORT=0;nRF2401_CS_PORT=1;//设置模式
nRF2401_DATA1_DDR = 1;
delay_us(10); //最小5us进入配置模式
nRF2401_DATA1_PORT=Mode;
nRF2401_CLK1_PORT=1;delay_us(1);
nRF2401_CLK1_PORT=0;delay_us(1); //写入最低配置位
nRF2401_PWR_PORT=1;nRF2401_CS_PORT=0;nRF2401_CE_PORT=1; //进入收发模式、
delay_us(300);
}
//===========================================================
//====================数据发送=================================
void nRF2401_SendData(unsigned char *Address,unsigned char DataBuffer)
{
unsigned char i=4;
nRF2401_PWR_PORT=1;nRF2401_CS_PORT=0;nRF2401_CE_PORT=1; //进入收发模式
delay_us(10);
while(i--)nRF2401_SendByte(*Address++); //发送地址字节
nRF2401_SendByte(DataBuffer); //发送数据字节
nRF2401_CE_PORT=0; //发射数据
delay_us(300); //等待结束
}
//===========================================================
//======================初始化===============================
void nRF2401_Init()
{
unsigned char i;
nRF2401_CLK1_DDR=1;
nRF2401_DATA1_DDR=1;
nRF2401_CS_DDR = 1;
nRF2401_CE_DDR = 1;
nRF2401_PWR_DDR = 1;
nRF2401_DR1_DDR = 0;
nRF2401_DR1_PORT=0;
nRF2401_CLK1_PORT=0;
nRF2401_DATA1_PORT=0;
nRF2401_CE_PORT=0;
nRF2401_CS_PORT=0;//空闲模式,低功耗
nRF2401_PWR_PORT=1;//上电
delay_ms(5);//从上电到进入配置模式最大 3ms 的延时
nRF2401_CS_PORT=1;//进入配置模式
delay_us(10); //最小5us
for(i=0;i<15;i++)nRF2401_SendByte(nRF2401_InitData[i]);
delay_us(10);
nRF2401_CS_PORT=0; //低功耗模式
delay_ms(6);
}
//===========================================================
现将发送部分和接收部分的程序一并贴上
发送部分:
//=======单片机:ATmega16,编译器:CodeVision v1.24==========
#include<mega16.h>
#include<delay.h>
#include "2401.h"
unsigned char a=0;
main()
{
nRF2401_Init();
nRF2401_SetMode(0);//发送模式
while(1)
{
nRF2401_SendData(Address,a++);
delay_ms(100);
}
}
接收部分:
//=======单片机:ATmega16,编译器:CodeVision v1.24==========
//==== 采用的是中断接收方式=================================
//Writen by ChenZhou
#include<mega16.h>
#include<delay.h>
#include "2401.h"
unsigned char a=0;
main()
{
MCUCR=0X03;GICR=0X40;#asm("sei");//启用外部中断INT0,上升沿中断
nRF2401_Init();
nRF2401_SetMode(1);//接收模式
while(1)
{
//=========在这里显示变量a的数值即可,若为0到225则是正确的
delay_ms(10);
}
}
interrupt [2] void int0(void)
{
nRF2401_GetData(&a);
}
《NBA 2K13》2013年选秀补丁v3.0版
39.9M / 英文11-13
《坎贝拉危险狩猎2013》语言切换器
144KB / 英文10-29
《模拟农场2013》升级补丁v1.3版
36.7M / 英文10-29
《模拟人生4》40X30泳池版现代别墅Mod
202KB / 中文11-10
《实况足球2011》ML会员声望修改器
220KB / 中文01-13
《实况足球2013》(大师联赛/绿茵传奇)存档编辑器汉化版
204KB / 中文10-30
《实况足球2013》124名经典球员脸型包
15.7M / 中文10-30
《实况足球2013》18位裁判脸型补丁
8.0M / 中文10-29
《实况足球2013》32个最新球鞋包补丁V1.0版
62.1M / 中文08-10
《实况足球2013》GP修改器v1.0
146KB / 中文10-29
70KB / 03-27
系统其他
下载
21.5M / 02-01
游戏补丁
下载
231KB / 09-26
系统优化
下载
兄弟control center4打印机驱动
硬件驱动 / 134.3M
下载
1
Vista Start Menu Free更换系统开始菜单v.3.88 绿色多语版
系统优化 / 9.4M
下载
2
UUID Factory(电脑uuid识别码生成工具)V2.2.0.3310 绿色版
系统其他 / 2.0M
下载
3
Siglus RealLive引擎通用一键解锁程序绿色版
系统其他 / 42KB
下载
4
ExeWatch(可执行文件监视工具)V1.30 绿色版
系统其他 / 203KB
下载
5
p2psearcher3.5绿色免费版
搜索查找 / 1.5M
下载
6
红米Pro驱动官方版
硬件驱动 / 18.4M
下载
7
测试电脑周围噪音分贝的免费软件v1.0 绿色版
系统其他 / 141KB
下载
8
windows系统文件(tbb.dll)免费版
系统其他 / 65KB
下载
9
WIN7切换窗口调整工具(Alt+Tab Tuner)V1.0.1.1 绿色版
系统其他 / 407KB
下载
10
114.9M / 06-09
立即下载
159M / 06-09
立即下载
208.1M / 06-09
立即下载
124.2M / 06-09
立即下载
57.2M / 06-09
立即下载
153M / 06-05
立即下载
444M / 06-05
立即下载
497M / 06-05
立即下载
2.34G / 06-05
立即下载
815.1M / 06-05
立即下载
126.3M / 06-09
立即下载
25.9M / 06-09
立即下载
985.7M / 06-08
立即下载
301.0M / 06-08
立即下载
34.60G / 06-08
立即下载
2.63G / 06-08
立即下载
926.0M / 06-08
立即下载
847.0M / 06-08
立即下载
296.2M / 06-05
立即下载
35.0M / 06-05
立即下载
11M / 06-09
立即下载 21M / 06-09
立即下载 21.5M / 06-09
立即下载 14.6M / 06-09
立即下载 11.2M / 06-05
立即下载 45.5M / 06-05
立即下载 14.1M / 06-05
立即下载 26.2M / 06-05
立即下载 133M / 06-05
立即下载 390.3M / 06-05
立即下载 63.1M / 06-09
立即下载 986.4M / 06-09
立即下载 356.2M / 06-09
立即下载 181.9M / 06-05
立即下载 46M / 06-05
立即下载 88.6M / 06-05
立即下载 29.7M / 06-05
立即下载 870.4M / 06-05
立即下载 44M / 06-05
立即下载 13.7M / 06-05
立即下载 1.27G / 06-09
立即下载 1.05G / 06-05
立即下载 2.49G / 06-01
立即下载 9.84G / 06-01
立即下载 956.1M / 05-28
立即下载 181.5M / 05-28
立即下载 255.9M / 05-28
立即下载 245.1M / 05-28
立即下载 1.07G / 05-28
立即下载 113.2M / 05-28
立即下载 41.5M / 06-09
立即下载 483.3M / 06-09
立即下载 25.7M / 06-05
立即下载 120.5M / 06-05
立即下载 1.10G / 06-05
立即下载 6.09G / 06-04
立即下载 8M / 06-04
立即下载 3.30G / 06-04
立即下载 820.0M / 06-04
立即下载 30.2M / 06-04
立即下载 466.6M / 06-09
立即下载 231.5M / 06-05
立即下载 79.6M / 06-05
立即下载 17.7M / 06-05
立即下载 499.9M / 06-05
立即下载 160M / 06-04
立即下载 60M / 06-04
立即下载 254.8M / 06-04
立即下载 268M / 06-04
立即下载 232.0M / 06-04
立即下载 517M / 06-09
立即下载 35.6M / 06-05
立即下载 4.07G / 06-05
立即下载 222.0M / 06-05
立即下载 13.4M / 01-03
立即下载 293.0M / 09-05
立即下载 1.22G / 07-06
立即下载 20.53G / 07-06
立即下载 229.9M / 07-06
立即下载 3.70G / 07-06
立即下载