
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
系统优化
下载
p2psearcher3.5绿色免费版
搜索查找 / 1.5M
下载
1
Siglus RealLive引擎通用一键解锁程序绿色版
系统其他 / 42KB
下载
2
bluetooth外围设备驱动程序
硬件驱动 / 12.7M
下载
3
Vista Start Menu Free更换系统开始菜单v.3.88 绿色多语版
系统优化 / 9.4M
下载
4
UUID Factory(电脑uuid识别码生成工具)V2.2.0.3310 绿色版
系统其他 / 2.0M
下载
5
VMware过检测补丁VMware Patch Check X64
系统其他 / 52KB
下载
6
Bios密码获取器BiosPwdsv1.21绿色汉化版
系统其他 / 127KB
下载
7
Total Uninstall PE完全卸载工具v6.19.1.352中文绿色版
系统其他 / 13.4M
下载
8
协议分析工具进制转换protobuf反序列化工具v1.0 绿色免费版
系统其他 / 1.2M
下载
9
PowerGPSV2.3.2电脑版
系统其他 / 1.8M
下载
10
140.5M / 09-05
立即下载
76.4M / 03-25
立即下载
55M / 06-05
立即下载
237.9M / 04-13
立即下载
900.9M / 03-02
立即下载
96.2M / 07-06
立即下载
311.2M / 07-06
立即下载
335M / 07-06
立即下载
200M / 07-06
立即下载
413.8M / 07-06
立即下载
768.9M / 08-19
立即下载
484.7M / 09-27
立即下载
165.4M / 09-05
立即下载
131.8M / 04-13
立即下载
195.6M / 03-03
立即下载
45.6M / 09-08
立即下载
665.2M / 07-06
立即下载
2.84G / 07-06
立即下载
93M / 07-06
立即下载
338.3M / 07-06
立即下载
892.4M / 08-18
立即下载 312M / 07-30
立即下载 1.38G / 07-26
立即下载 109.8M / 06-03
立即下载 142M / 01-08
立即下载 1.2M / 11-23
立即下载 548.8M / 04-13
立即下载 1.6M / 04-13
立即下载 1.48G / 03-18
立即下载 646.6M / 03-03
立即下载 404M / 08-18
立即下载 110.5M / 09-05
立即下载 33.4M / 09-05
立即下载 60M / 04-29
立即下载 254M / 04-25
立即下载 659M / 04-23
立即下载 1M / 12-26
立即下载 253.4M / 12-08
立即下载 253M / 12-08
立即下载 1.19G / 11-16
立即下载 115.9M / 08-19
立即下载 488.3M / 06-04
立即下载 369M / 09-22
立即下载 181.5M / 09-22
立即下载 201.2M / 09-05
立即下载 248.9M / 12-08
立即下载 248.9M / 12-08
立即下载 100.6M / 03-06
立即下载 148.9M / 03-06
立即下载 1.12G / 07-06
立即下载 126.7M / 02-04
立即下载 1.76G / 09-22
立即下载 1.92G / 04-17
立即下载 201.5M / 04-13
立即下载 7.31G / 07-01
立即下载 94.3M / 07-06
立即下载 2.48G / 07-06
立即下载 7.63G / 07-06
立即下载 1M / 07-06
立即下载 778.1M / 07-06
立即下载 1.30G / 08-19
立即下载 72M / 07-06
立即下载 548.7M / 07-06
立即下载 1.00G / 07-06
立即下载 9.13G / 07-06
立即下载 126.2M / 07-06
立即下载 72M / 07-06
立即下载 105.1M / 07-06
立即下载 132M / 07-06
立即下载 132M / 07-06
立即下载