后天就要出毕业设计的实物了谁有nrf905的发射接收程序,跪求。好使的。stc12c5a60s2单片机机是STC89C52

问题补充&&
本页链接:
0x20,最简单的就是加延时; SpiWrite(0xE7)。有一丁点没有调通,也没有接受应答的函数;等端口可以设置905是接收状态还是发送状态,**是否定的,这样导致结果可能是不能发送; i=0;
LED2=0,那么我把接收子函数单提出来粘上。既然你写了发送函数,其中可选择的只有0x01,没有包含无线通信的握手; while(,就是个高低电平;
bre**,虽说把一些问题讲到了;
DelayMs(500),想编写出此类程序; CSN=0; TRX_CE=0,0x20,见得多了;
} }}同样接收函数也应该有接收数组。那么还请您参看网上正确的905程序; TXEN=1。只发送一个t=k没什么意义,前提是你没有设置自动重发的前提下。你的程序明显是个发送程序; SpiWrite(0x22); Delay(50); TRX_CE=1,即使能发送也不是真正正确的方法,不壳,含有spi串行通信的问题,这点没什么说的,你发现一天见了十个新的东西肯定吃不消;
SpiWrite(0x24),一天建一个就足够了;/i++) {SpiWrite(dis_buf[i]):void TxPacket(void){unsigned int i,即使只有一个‘k’那么也请把这条函数写清楚,那么都无法正常工作,寄存器地址的问题;
DelayMs(500)。void RxPacket(void){写发送地址 SpiWrite(0xE7),但我并不建议去认真学习此类东西;32; CSN=0,就见惯不怪了,需要有手册并且有一定c功底且运气还得好,这种工程电子; }}void Wait_Rec_Packet(void){ TXEN=0; 这个是否能占满32字节;那么则默认传输字节是32字节; CSN=1;} CSN=1,所以请加上一个三十二字节的数组;&#47。而在发送函数中却写着 SpiWrite(t); SpiWrite(0x20);
CSN=1,但其中寄存器咋配置的,当你调试有难度的东西; TRX_CE=1; _nop_();&#47,如果说接受和发送配置成了0x20。主函数中提倡加一个延时函数,0x04,包含了寄存器的配置,这还不包含电路连接方面的步骤。比如这个无线通信; Display_Temperature();/
i++; while(DR) {
TxRxBuffer[i]=SpiRead()。搞不大懂是因为见的不多。那么我提及一些明显的问题说下,完全的经验论,所以接收机可能处理不过来;
LED2=1;i&lt。因为程序中。TX_EN=1; _nop_(),但也请加入数组中;
RxPacket()。真正占满32字节的如何写;写发送**命令for(i=0; &#47!DR);}明显其中有个for循环32次; SpiWrite(0xE7),相关寄存器设置的问题等等。除非是向开发驱动;_nop_(); SpiWrite(0xE7)。另外没有一个像样子的发送**用的数组;TRX_CE=1,无线通信已经足够难了;_nop_(),不然会拖延很长时间对于刚学这个的人,那么是否存在这种**宽度,自行调试更改实现自己的功能; while(1) {
TRX_CE=0,不建议自己琢磨...余下全文>>
•回答
•回答
•回答
•回答
•回答
说白了就是一个SPI协议,多读读模块**,加油,多看看网上的例子.1-2天就差不多了首先NRF905最好用3.3V电源。其次是程序的驱动
猜你感兴趣
服务声明: 信息来源于互联网,不保证内容的可靠性、真实性及准确性,仅供参考,版权归原作者所有!Copyright &
Powered by 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
毕业设计-【医院病房呼叫器的设计】【无线】【51单片机+nRF905无线模块】【毕业设计】
下载积分:1000
内容提示:毕业设计-【医院病房呼叫器的设计】【无线】【51单片机+nRF905无线模块】【毕业设计】
文档格式:DOC|
浏览次数:4|
上传日期: 21:26:03|
文档星级:
该用户还上传了这些文档
毕业设计-【医院病房呼叫器的设计】【无线】【51单片机+nRF905无线模块.DOC
官方公共微信STC89C52单片机开发板设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
&&¥1.00
喜欢此文档的还喜欢
STC89C52单片机开发板设计
S​T​C9​C2​单​片​机​开​发​板​设​计​ ​E​D​A​课​程​设​计
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢您好,我需要nrf905与stc12c5608ad单片机构成的无线收发应用电路原理图及程序,求助 谢谢_百度知道
您好,我需要nrf905与stc12c5608ad单片机构成的无线收发应用电路原理图及程序,求助 谢谢
CE_905 = 1;2004 set 915mhz#define POWER
//&#47,提高发送效率void UartToRf(void ){
INT8U Tmp=0,16位校验;接收数据缓冲区INT8U TxBuf[RFLEN]={0};CRC开,判读串口发送数据是否完毕;
while(; i&//
LED1=1;sbit
P0^1,既能收也能发:2个按键;&#47:Init905()
RxPacket() TxPacket()&#47,2个led灯,433MHZ
SendStr(RxBuf);/***********************主程序*************************************************&#47,仍失败不发送unsigned char CDSend(void){
unsigned char i=0;/ }
19/输出;}//*****************************************************************************///&#47,重试3次;&#47,一个串口功能;//CRC开;
else MOSI = 0;#include&初始化Nrf905
InitCpu();///延时;//W_TX_ADDRESS#define RTA
0x23 &#47:把串口接收的数据通过无线发射出去&#47,缓冲区已情况的情况
TransmitPacket(TxBuf);&#47,/
TL1 = TIMER1;/
/&#47,发送节电模式关;/
return 1;/寄存器宏定义/// /定义与9e5不一样&#47,频道1
其他外设;#define RFLEN 32 ///&#47,返回1 }/W_TEST_UNLOCK (use with data A5)#define WTR
0x52 /功能描述;/R_ADC_DATA #define WAC
0x44 /fail&/
/查询接收标志位(有数据发送过来时置为1)
= 0;//35;//将从无线收到的数据发到串口
if(UartRecCnt)
///输入;/&#47.h&/
dat &lt:void Init905(void)//sbit
P0^5;/函数名;/////&#47,输出功率10dB; 说明;/
TRX_CE = 1;///发送数据
Delay(5);//);/sbit
//&#47,模块自带天线长度约10//发送成功;判段来自串口的字符串是否发送完毕
TransmitPacket(TxBuf),
//通过射频发送
memset(TxB最多3次
SendStr(&/
_nop_();//R'/采取延时读取串口接收计数的方法.;
///输出; i++)
if(dat & 0x80)
MOSI = 1;#include&/
TX_EN = 1。
}*/// Read payload command
for(i=0;/0'按键1按下
TxBuf[0] = 0x31;
}*////CHANNEL_CONFIG#define SAV
Delay(rand()&0x0f);//功能;//********定义与9e5不一样******************************************************//接收标志位清零
////&#47:时间/R_RF_CONFIG#define WTP
0x20 /*****************************************************************************//void Init905(void){
if(Recepacket(RxBuf))
/////待发送的数据写入缓冲区
InitTimer();
P0^6;/等待发送完成
TI=0;发送数据
return 0; Set nRF905 in standby mode
CE_905 = 0;&#47:接收数据缓冲区/300MS超时退出:void InitCpu(void)&#47:STC89C52RC,最大32INT8U data UartRecCnt=0;/函数名;///= 1;void int_rec(void) interrupt 4 using 2{
&#47!='/*****************************************************************************void Delay(INT8U n){
0x04;初始化CPU/&#47,外部时钟使能500KHZ输出
InitUart();/串口方式1;函数名;/reg9e5;/
&#47:Nrf905初始化;/&#47:发送一个字节/&#47,led显示核心函数;通过射频发送
memset(TxB////sbit
return 1;***************************** 该函数与nRF9e5不同 ****************************/串口收到数据时相应处理
//8;*****************************************************************************void SendCh(INT8U c){&#47:发送的数据////
if(MISO)temp++:用于测试nRF905;/ i++)
SpiReadWrite(pBuf[i]);//////#include&
while(DR == 0)//START_ADC_CONV#define HFREQ
/&#47,UartRecCnt);&发送数据缓冲区/
LED1 = 1;清零发送标志位
p++;////reg52;//&#47:无///#include &//自动重发关,915MHZ
TX_EN=0;/&#47,
/// 300)/3);/输出;//输出;intrins:发送的数据/\/&#47,所以将自己之前初学时写得测试代码贴出来:看到网上好所人问51单片机+nRF905射频通信问题;/
CE_905 = 0;
////对接受到得字符操作
}}/*****************************************************************************/
&#47,禁止外部时钟
};/ i&/数据长度;功能描述;/
if(RxBuf[0] == 0x31)
LED1 = 0;&#47,
while(n--)
for(i=0:接收数据存在缓冲区内/输入;随机延时
LED3=~LED3;
//&#47:无/定时器1工作方式2;I//RFLEN-1){TxBuf[UartRecCnt++]=SBUF;&#47,允许接收
TMOD = 0x21; }
//&#47,暂存UartRecCnt
Tmp=UartRecC*******************************************************************************************/载波监听
TransmitPacket(TxBuf);//
SCK = 0;/功能描述;
SCK = 1;////配置模式CE_905 = 0;////R_TX_ADDRESS#define RRP
0x24 ///*****************************************************************************
INT8U SpiReadWrite(INT8U dat){
INT8U i:INT8U Recepacket(INT8U *pBuf)/
CDSend();两个LED灭;让从电脑上传到单片机的数据;}//发送数据长度;/
if(KEY1 == 0)
SpiReadWrite(WTP);}
///频道设置
temp = 0;&#47.3 = max power//&#47,也可通过按键发送,供初学者参考;&#47:收到的数据/256-(110592/临时变量;////Nrf905Config[4];串口接收计数#define do_uart()
if(UartRecCnt&******************************************************************************************\//*****************************************************************************
void InitCpu(void){
LED2=0;/***************************** 该函数与nRF9e5不同 ****************************////*****************************************************************************INT8U Recepacket(INT8U *pBuf){
INT8U i,否则返回0//sbit
P2^0;载波监听发送,也可将收到的无线信号通过串口输出;/清空缓冲区
UartRecCnt=0;功能描述;/发送字符串到串口void SendStr(INT8U *p){
while(*p;sbit KEY1
=P1^6:INT8U SpiReadWrite(INT8U b)&#47:发送的数据//TRX_CE = 1.h&/W_RF_CONFIG#define RRC
SpiReadWrite(0);///
SpiReadWrite(WRC);/*****************************************************************************sbit LED1
=P1^0;&#47。///)
{ SBUF=*p;/////
while(DR);///函数名;/40;/读出数据;/
///串口中断处理宏INT8U RxBuf[RFLEN]={0};//&#47,4字节
for(i=0;************************************************************************/
POW_UP = 1;/输入;//&#47:TransmitPacket(INT8U *pBuf)&#47,&#47.h&
Delay(5);输入; Spi clock line init high
TRX_CE = 0;W_TX_PAYLOAD#define RTP
0x21 ////输入;/R_TEST_REGISTER#define CC
0x80 /函数名,4字节
0xe7;//发送失败,返回0
SendCh(0x30+i);输出;&#47。
if(ReadTimer(1) &gt:无/R_TX_PAYLOAD#define WTA
0x22 //******************************************************************************/直到DR为高;&#47,日期;//
for(i=0;/);//
/SendCh(SBUF);
0x0e;/&#47!CD) ///
/&#47,UartRecCnt);输出;}/i&///收发地址都为4字节
RFLEN,发射频率433M;//
_nop_();&#47,定时器0工作方式1
TH1 = TIMER1,8位校验,松开灭):无/&#47,(发送1;SendCh('(12*32*96))/功能描述;接收数据长度;
TX_EN = 0;/启动定时器1
ES = 1;sbit LED3= P1^2;功能描述;sbit LED2
=P1^1:成功返回1;&#47,
//// i++)//W_ADC_CONFIG#define RAC
0x46 /初始化串口;等待发送完成
TI = 0;//*****************************************************************************code INT8U Nrf905Config[10] = {
0x28;//}//
//*****************************************************************************/905上电
也可将串口收到的数据通过无线方式发送出去;输出;&#47,传回的电脑显示
do_uart();//写入发送数据缓冲区
CE_905 = 1;ISD51;///按键2按下
TxBuf[0] = 0x32;
SCK = 0;//函数名;// 0=433MHz;////*****************************************************************************///sbit
P0^3.h&///&#47,这里我们配置成32位地址;&#47、2时也可控制LED灯亮);/
串口接受计数清零 }//
/输入;= 1; sbit KEY2
=P1^7;///复位超时计数器:廷时100us&#47:无&#47。
双工的,发送节电模式关:无/自动重发关;
_nop_();&#47,可通过串口发送接收;08////
SCK = 0;//
TRX_CE = 0;
else if(RxBuf[0] == 0x32)
}while(++i&/配置寄存器/for(i=0;*串口接收中断函数*/
SBUF = c,16M晶振,
/*Delay(2*RFLEN);/
return 0。//sbit LED4= P1^3;输出;/
0x04;/&#47:无/写入配置寄存器
CE_905 = 1;//}
&#47:日硬件;/&#47。可以通过按钮控制另一块板上的小灯亮灭(按住亮。
TRX_CE = 0;
EA = 1;#include &使能发送
Delay(1);//输入;///&#47,等待字符串发送完毕;/&#47.0592M;&#47!TI):Cpu初始化&#47.h&&#47,射频芯片通过10根导线与单片机IO口连接
射频芯片nRf905;&#47,0,晶振11;///函数名;&#47:无////sbit
P0^7:SPI发送接收一个字节/sbit
P0^0;//TransmitPacket(TxBuf);#include &
&#47:void SendCh(INT8U c)/// &#47:无&#47:串口初始化// i&lt,
0xe7.h&*****************************************************************************void TransmitPacket(INT8U *pBuf){
INT8U//i++);/*******************************************************************************************/&#47.时间过短的话会出现串口数据未发完;10;&#47,波特率9600;R_ADC_CONFIG#define WTU
0x50 //新编发送函数
}}/&#47,等待
/ Spi enable for write a spi command
SpiReadWrite(RRP);
UartToRf();///
TI = 0;&#47!DR)return 0;*
ResetTimer(1);/延时;#define
unsigned char #define
unsigned int#define
/&#47:单片机型号;/&#47, 1=868/
if(;//main(){
Init905(),
//4字节地址
0xe7;/R_RX_PAYLOAD#define RAD
0x40 ////*****************************************************************************#define WRC
0x00 /功能描述,
&#47:void Delay(INT8U n)///
EA = 0;&#47:InitUart(void)/&#47。
pBuf[i] = SpiReadWrite(0);
//TransmitPacket(TxBuf);sbit
串口接受计数清零
*//***************************** 该函数与nRF9e5不同 ****************************/
LED2 = 1;i++)!TI)!=UartRecCnt),//
for(i=0;功能描述; 0=&#47,16M晶振;/W_TEST_REGISTER#define RTR
SpiReadWrite(Nrf905Config[i]);清空缓冲区
UartRecCnt=0;
if(KEY2 == 0)
///***************************************************************************** void InitUart(void){
SCON = 0x50;/
Delay(10);/*****************************************************************************//接收到数据:发送发送缓冲区的数据//&#47,输出功率10dB; //进入接收模式
if(;////Nrf905Config[3];Delay(200);查询DR的状态 /有收到切换到空闲状态时退出接收状态;原始代码采用的是等待超时的方法//*****************************************************************************/ /
}/&#47&#47
其他类似问题
为您推荐:
您可能关注的推广
电路原理图的相关知识
其他1条回答
=-=敢不敢留个邮箱
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁恳请大神把nrf905与stc89s52单片机构成的无线收发应用电路及程序发至我的邮箱啊 谢谢!_百度知道
恳请大神把nrf905与stc89s52单片机构成的无线收发应用电路及程序发至我的邮箱啊 谢谢!
提问者采纳
8,led显示核心函数;&#47,最大32INT8U data UartRecCnt=0;
if(; EA = 0;////&#47,/ for(i=0;/#define
unsigned char #define
INT16U unsigned int#define
0XFD //&#47,
//功能描述;/fail&*****************************************************************************///功能描述;***************************************************************************** void InitUart(void){ SCON = 0x50;输入;***********************主程序*************************************************//}/3),
/发送成功:廷时100us//载波监听
TransmitPacket(TxBuf);905上电
&#47:无//i++);函数名:发送的数据/ LED1 = 1;串口接收计数#define do_uart()
if(UartRecCnt&lt:Cpu初始化&#47,缓冲区已情况的情况
TransmitPacket(TxBuf);&#47.h&功能描述,外部时钟使能500KHZ输出
//******************************************************************************************\初始化串口;&#47.时间过短的话会出现串口数据未发完;&#47,
&#47:发送一个字节///
/输出;/&#47,这里我们配置成32位地址;//
//R_TEST_REGISTER#define CC
0x80 /&#47:把串口接收的数据通过无线发射出去&#47,
Init905();//&#47,等待字符串发送完毕;TransmitPacket(TxBuf);清空缓冲区
UartRecCnt=0;/ //
///功能描述;/reg9e5,仍失败不发送unsigned char CDSend(void){
unsigned char i=0;*串口接收中断函数*&#47,判读串口发送数据是否完毕;//&#47。
TRX_CE = 0;&#47!DR)return 0;//载波监听发送,否则返回0//查询DR的状态 ///&#47,暂存UartRecCnt
Tmp=UartRecC 0x04;R'函数名;4字节地址
0xe7;///配置寄存器/
if(MISO)temp++;//}&#47,输出功率10dB,可通过串口发送接收;
return 0;// SCK = 0;对接受到得字符操作
}}///发送数据
return 0;/R_TX_PAYLOAD#define WTA
0x22 / Read payload command
for(i=0!='&#47:发送的数据/
///写入发送数据缓冲区 } CE_905 = 1;/发送失败;0&#39:void Delay(INT8U n)//// /sbit KEY1
=P1^6; TX_EN=0;/ LED1=1;/
TR1 = 1,允许接收 TMOD = 0x21;
/ }while(++i&/*******************************************************************************************///
Delay(10);//i& SpiReadWrite(WRC),频道1
其他外设;/ /&#47,8位校验;// 0xdf
/*****************************************************************************/TransmitPacket(TxBuf);&#47,所以将自己之前初学时写得测试代码贴出来; Spi clock line init high
TRX_CE=0;////// while(1) {
TL1 = TIMER1;//sbit CE_905 = P2^1;函数名;
//输出,4字节
0xe7;///&#47:void SendCh(INT8U c)&#47.h&//////* ResetTimer(1);/随机延时
LED3=~LED3:无///
/&#47:无////
CDSend();/函数名;&#47.h&
/按键2按下
TxBuf[0] = 0x32;// InitTimer();
SCK = 1;sbit TX_EN = P0^0;/&#47,/&#47.;/按键1按下
TxBuf[0] = 0x31;W_ADC_CONFIG#define RAC
0x46 /&#47,提高发送效率void UartToRf(void ){
INT8U Tmp=0;////函数名,0;/sbit CD = P0^3;发送数据缓冲区//
}接收到数据;= 1;///&将从无线收到的数据发到串口
if(UartRecCnt)
&#47:InitUart(void)/自动重发关;////
/输入。/ /I/有收到切换到空闲状态时退出接收状态;输出;/
temp &void int_rec(void) interrupt 4 using 2{
SendStr(RxBuf); } while(DR); /R_TX_ADDRESS#define RRP
0x24 /35;// InitUart();///
&#47,等待
while(Tmp.h&///&#47:2个按键;//************************************************************************/清空缓冲区
UartRecCnt=0;&#47:无/// }
/ temp = 0;256-(110592///发送数据
//&#47,返回1 }/
/*****************************************************************************/输入;i& SpiReadWrite(WTP);/
/300MS超时退出;
else if(RxBuf[0] == 0x32)
LED2 = 0,4字节
RFLEN:单片机型号;/ 日期;/
Delay(5);/最多3次 SendStr(&///原始代码采用的是等待超时的方法///功能描述;
CE_905 = 0;//等待发送完成 TI=0。/&#47。
if(RxBuf[0] == 0x31)
LED1 = 0。
LED2 = 1;////直到DR为高;/*****************************************************************************//SendCh('
///***************************** 该函数与nRF9e5不同 ****************************// while(;START_ADC_CONV#define HFREQ
//初始化CPU//////
EA = 1;复位超时计数器;/ 0=sbit LED4= P1^3:void Init905(void)/&#47:发送的数据/两个LED灭;)
{ SBUF=*p; i&W_TEST_REGISTER#define RTR
TRX_CE = 0;/sbit LED2
=P1^1;&#47:用于测试nRF905;//
/ EA = 1;/= 1;/W_RF_CONFIG#define RRC
0x10 /}&#47:收到的数据/ 300)///&#47,定时器0工作方式1 TH1 = TIMER1; for(i=0;///W_TX_ADDRESS#define RTA
0x23 //***************************** 该函数与nRF9e5不同 ****************************&#47,16位校验;输入; sbit KEY2
=P1^7;//40; TRX_CE = 1,16M晶振;/
/ }*/&#47!CD) /寄存器宏定义/
&#47:Nrf905初始化;/*****************************************************************************&#47,禁止外部时钟
};//2004 set 915mhz#define POWER
/定义与9e5不一样//
//CRC开; }
/函数名;/ISD51,
_nop_();&#47:无/&#47。 {
if(ReadTimer(1) &// TX_EN = 0;&#47,波特率9600;/&#47:接收数据存在缓冲区内&#47:INT8U Recepacket(INT8U *pBuf)/&#47,发送节电模式关;延时;/* {
SpiReadWrite(0);CHANNEL_CONFIG#define SAV
0xC0 //*****************************************************************************code INT8U Nrf905Config[10] = {
0x28;&#47。 {
pBuf[i] = SpiReadWrite(0);
/等待发送完成 TI = 0;/进入接收模式
if(;/&#47,发射频率433M;//指针加1 } } &#47。 while(DR == 0)//
if(KEY2 == 0)
/通过射频发送
memset(TxB/
/通过射频发送
memset(TxB/ i++) {
SpiReadWrite(pBuf[i]);输出;/输入;///
/功能; /sbit AM = P0^4;*****************************************************************************void SendCh(INT8U c){/函数名;//sbit DR = P0^5;////////
}*&#47,UartRecCnt););/发送数据长度;/&#47,
//// Set nRF905 in standby mode CE_905 = 0,16M晶振;采取延时读取串口接收计数的方法;********定义与9e5不一样******************************************************/&#47:发送发送缓冲区的数据//新编发送函数
}}看到网上好所人问51单片机+nRF905射频通信问题:Init905()
RxPacket() TxPacket()&#47,射频芯片通过10根导线与单片机IO口连接
射频芯片nRf905;//Nrf905Config[4];
SBUF =函数名;/
sbit MISO = P0^6;sbit LED3= P1^2;//// i&功能描述;/*****************************************************************************
void InitCpu(void){
LED2=0;915MHz
19&#47:成功返回1;/*****************************************************************************void Delay(INT8U n){ INT8U功能描述;读出数据;O口定义/ i++)//输出;*****************************************************************************INT8U Recepacket(INT8U *pBuf){ INT8U/判段来自串口的字符串是否发送完毕
TransmitPacket(TxBuf);
TRX_CE = 0;
if(Recepacket(RxBuf))
//R_ADC_DATA #define WAC
0x44 / 0=433MHz;/////&#47:void InitCpu(void)//发送字符串到串口void SendStr(INT8U *p){
while(*p; 0x0e;/reg52;/
///*****************************************************************************sbit LED1
=P1^0;SendCh(SBUF);//W_TEST_UNLOCK (use with data A5)#define WTR
0x52 /// POW_UP = 1;///R_ADC_CONFIG#define WTU
0x50 /i++);Delay(200);//#include&/ i&初始化Nrf905 InitCpu(),晶振11:日硬件配置;
// /输入:时间//for(i=0;\/sbit MOSI = P0^7;//&#47,0,433MHZ
0x44;//写入配置寄存器 } CE_905 = 1;
SCK = 0;///RFLEN-1){TxBuf[UartRecCnt++]=SBUF,
//sbit POW_UP = P0^2;/ i++) {
SpiReadWrite(Nrf905Config[i]); return 1;//延时;//R_RF_CONFIG#define WTP
//////&#47:INT8U SpiReadWrite(INT8U b)/#include&///&#47,
//CRC开;/******************************************************************************/ return 1;*****************************************************************************/&#47:接收数据缓冲区/08///// i&}
Delay(5);待发送的数据写入缓冲区 while(,UartRecCnt);} /
Delay(rand()&0x0f);临时变量;***************************** 该函数与nRF9e5不同 ****************************/*******************************************************************************************&#47,发送节电模式关;定时器1工作方式2,返回0
SendCh(0x30+i);/
TX_EN = 1:无&#47:无/W_TX_PAYLOAD#define RTP
0x21 /#include & i++) {
if(dat & 0x80)
MOSI = 1;10; TI = 0; 0x04;&#47:无&#47:SPI发送接收一个字节/
dat &/启动定时器1 ES = 1,重试3次;使能发送 Delay(1),&#47,传回的电脑显示
do_uart();/输出;//
&#47,一个串口功能;//让从电脑上传到单片机的数据;///
_nop_().h&////*****************************************************************************
INT8U SpiReadWrite(INT8U dat){ INT8U输入;// // CE_905 = 1;清零发送标志位
p++;//sbit SCK = P2^0;//////#include&//&#47,模块自带天线长度约10 //#include &*****************************************************************************#define WRC
0x00 &#47!=UartRecCnt);/&#47:TransmitPacket(INT8U *pBuf)/ while(n--) for(i=0;/
UartToRf();///接收标志位清零
////&#47:串口初始化///
/输出;/&#47,输出功率10dB;/
else MOSI = 0;功能描述;Nrf905Config[3]:无//sbit TRX_CE = P0^1;/
for(i=0;//////&#47.3 = max power/ Spi enable for write a spi command SpiReadWrite(RRP);/查询接收标志位(有数据发送过来时置为1)
= 0;&#47.0592M; 串口接受计数清零
*//配置模式
CE_905 = 0;/
/数据长度;接收数据长度;///
/#define RFLEN 32 //&#47,915MHZ
0x0c;*****************************************************************************void TransmitPacket(INT8U *pBuf){ INT8U}&#47.h&/R_RX_PAYLOAD#define RAD
0x40 /void Init905(void){
/&#47!TI);自动重发关;串口收到数据时相应处理
/&#47!TI);收发地址都为4字节
RFLEN;&#47, 1=868/&#47,
0xe7;串口方式1;/输出;接收数据缓冲区INT8U TxBuf[RFLEN]={0};/// 串口接受计数清零 }////串口中断处理宏INT8U RxBuf[RFLEN]={0};*****************************************************************************/(12*32*96))/// /&#47。 ///频道设置
if(KEY1 == 0)
/TRX_CE = 1;&#47:STC89C52RC;/*Delay(2*RFLEN);////);&#47,2个led灯;
Delay(5);&lt,也可通过按键发送nRF905+51单片机双工收发程序/}///#include &lt
提问者评价
谢谢你帮我大忙了
其他类似问题
为您推荐:
您可能关注的推广
stc89s52的相关知识
其他1条回答
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 stc12c5a60s2单片机 的文章

 

随机推荐