OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » NRF24L01....求有同经历的高人指点....

共3条 1/1 1 跳转至

NRF24L01....求有同经历的高人指点....

助工
2015-05-01 14:31:14    评分

调了好久了..卡在最后一步..

发送端呵接受端已经分开调试了,

发射端

SPI_RW_Reg(WRITE_REG + EN_AA, 0x00); 
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x00); 
SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00);
STATUS 寄存器 0x2E  FIFO_STATUS 寄存器 0x11 ;

没有问题。

接收端

SPI_RW_Reg(WRITE_REG + EN_AA, 0x00); 
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);

STATUS 寄存器 0x0E  FIFO_STATUS 寄存器 0x11 ;CD 检测到了信号 0x01;

通讯就是有问题....求大神!!!!




关键词: nrf24l01     新手求助     求助    

助工
2015-05-01 14:43:53    评分
2楼
有没有人啊 = =

高工
2015-05-04 09:28:45    评分
3楼
试试我这个,一端发送,一端接收
/******************************************************************************
函数原型:	void NRF24L01_Init(uint8_t Chanal,uint8_t Mode)
功    能:	NRF24L01初始化
参    数:	Chanal,RF通道
*******************************************************************************/
void NRF24L01_Init(uint8_t Chanal,uint8_t Mode)
{
	NRF_CE_L;
		
	NRF_Write_Reg(FLUSH_TX,0xff);//清空发送缓冲区
	NRF_Write_Reg(FLUSH_RX,0xff);//清空接收缓冲区
	NRF_Write_Buf(NRF_WRITE_REG + TX_ADDR,   TX_ADDRESS,5); //写TX节点地址  	
	NRF_Write_Buf(NRF_WRITE_REG + RX_ADDR_P0,RX_ADDRESS,5);	//写RX节点地址 

	NRF_Write_Reg(NRF_WRITE_REG + EN_AA,     0x01); //使能通道0的自动应答 
	NRF_Write_Reg(NRF_WRITE_REG + EN_RXADDR, 0x01);	//使能通道0的接收地址 
	NRF_Write_Reg(NRF_WRITE_REG + SETUP_RETR,0x1a);	//设置自动重发间隔时间:500us;最大自动重发次数:10次 
	NRF_Write_Reg(NRF_WRITE_REG + RF_CH,   Chanal);	//设置RF通道为CHANAL
	NRF_Write_Reg(NRF_WRITE_REG + RX_PW_P0,    32);	//设置通道0的有效数据宽度
	NRF_Write_Reg(NRF_WRITE_REG + RF_SETUP,  0x0f); //设置TX发射参数,0db增益,2Mbps,低噪声增益开启
	
	if(Mode==TX)
		NRF_Write_Reg(NRF_WRITE_REG + CONFIG,0x0E);//发送
	else if(Mode==RX)
		NRF_Write_Reg(NRF_WRITE_REG + CONFIG,0x0F);//接收
	
	NRF_CE_H;
}

 


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]