NRF905调试
时间:10-02
整理:3721RD
点击:
首先:
NRF905可以与51单片机进行通信,(初始化寄存器后读出配置一致);
但是:在发送一次数据后905的DR引脚一直被至高;
//------------发送数据-------------//
void TxPacket()
{
unsigned char i,j;
CSN=0;
SpiWrite(WTP); //向TX寄存器中写入要发送的数据
for(j=0;j<3;j++) //这里由于设定的数据宽度为3个字节
{
// send(send_bruff[j]);
SpiWrite(send_bruff[j]); //循环3次发送3个字节
}
CSN=1; //结束传输
Delay(1);
CSN=0; //启用SPI
SpiWrite(WTA); // Write address command
for (i=0;i<4;i++) // Write 4 bytes address
{
// send(TxAddress[i]);
SpiWrite(TxAddress[i]);
}
CSN=1; //关闭SPI
Delay(1);
TRX_CE=1; //进入发送模式,启用射频发送
Delay_ms(200); //进入发送模式
TRX_CE=0; // fasongwang
// while(!DR); //
Delay_ms(1000);
led2=0; //发送时灯亮
Delay_ms(1000);
led2=1;
}
这是发送函数;
在接收端也是同样的效果,在发送端发一次后:
DR引脚也一直是高。
这是为什么?手册里不是写了在接收数据后会自动置低?
NRF905可以与51单片机进行通信,(初始化寄存器后读出配置一致);
但是:在发送一次数据后905的DR引脚一直被至高;
//------------发送数据-------------//
void TxPacket()
{
unsigned char i,j;
CSN=0;
SpiWrite(WTP); //向TX寄存器中写入要发送的数据
for(j=0;j<3;j++) //这里由于设定的数据宽度为3个字节
{
// send(send_bruff[j]);
SpiWrite(send_bruff[j]); //循环3次发送3个字节
}
CSN=1; //结束传输
Delay(1);
CSN=0; //启用SPI
SpiWrite(WTA); // Write address command
for (i=0;i<4;i++) // Write 4 bytes address
{
// send(TxAddress[i]);
SpiWrite(TxAddress[i]);
}
CSN=1; //关闭SPI
Delay(1);
TRX_CE=1; //进入发送模式,启用射频发送
Delay_ms(200); //进入发送模式
TRX_CE=0; // fasongwang
// while(!DR); //
Delay_ms(1000);
led2=0; //发送时灯亮
Delay_ms(1000);
led2=1;
}
这是发送函数;
在接收端也是同样的效果,在发送端发一次后:
DR引脚也一直是高。
这是为什么?手册里不是写了在接收数据后会自动置低?
自己动手丰衣足食,,已调通、、、、、、、
小编调通的能分享一下吗?我也正在弄这个
分享一下吧调通的,万分感谢
求分享 求解释 我也在调 数据一直发不出去 我用的是C8051F410的单片机
OK。