本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
nRF905 SPI 正常 却无法发送
我用的是STC89C52RC SPI读写已测,均正常 但发送数据时 DR就是不能置高 代码都是了好几种 延时也尝试做过改变 还是不行 以下是我的部分代码
希望有经验的朋友帮帮忙,这模块我弄了一个月了,555555555 谢谢
--------------------------------------------------
typedef struct RFConfig
{
uchar n;
uchar buf[10];
}RFConfig;
code RFConfig RxTxConf =
{
10,
0x4c, 0x0c, 0x44, 0x02, 0x02, 0x44, 0x44, 0x44,0x44, 0x58
};
--------------------------------------------------
//-------------------------------------------------------------------
void delay(uint ms){
uint i,j;
for(i=ms;i>0;i--){
for(j=250;j>0;j--){
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
void delay_us(uint us){
uint i;
for(i=us;i>0;i--){
_nop_();
}
}
//------------------------
//使用nRF905发送数据------------------------------------------
void TxPacket(void)
{
uchar i;
CSN=0;
SpiWrite(WTP); // Write payload command
for (i=0;i<2;i++)
{
SpiWrite(TxBuf[i]);
}
CSN=1;
delay_us(10);
CSN=0; // SPI使能,准备写入地址信息
SpiWrite(WTA); // 写数据至地址寄存器
for (i=0;i<4;i++) // 写入4字节地址
{
SpiWrite(RxTxConf.buf[i+5]);
}
CSN=1;
delay_us(100);
TRX_CE=1; // 进入发送模式,启动射频发送
// while(!DR) P0=0x55;
delay_us(100); // 进入ShockBurst发送模式后,芯片保证数据发送完成后返回STANDBY模式
TRX_CE=0;
delay(1000);
} |