OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6993|回复: 4

NRF24L01 怎么不能连续接收数据?

[复制链接]

2

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-11-9
在线时间
0 小时
发表于 2014-6-2 10:45:00 | 显示全部楼层 |阅读模式
5金钱
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">问题:如果将SetRX_Mode(),放在while循环之外&nbsp;&nbsp;只能接收一个数据,&nbsp;且就是在上电那一刻。&nbsp;&nbsp;求同行帮忙分析一下,</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/***************主程序******************/</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">void&nbsp;main(void)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">{</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">unsigned&nbsp;char&nbsp;tf&nbsp;=0;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">unsigned&nbsp;char&nbsp;TxBuf[32]="WangChengJunWangChengJunWangChen";        &nbsp;//&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">unsigned&nbsp;char&nbsp;RxBuf[32]={0};</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">UART_init(); </span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;init_NRF24L01();</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">//SetTX_Mode();        &nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">while(1)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">{&nbsp; </span><br />
<span style="font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;color:#FF0000;">SetRX_Mode();</span><span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;//如果将次语句放在while循环之外就不能连续接收数据,只会在上电接收一次数据        &nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">//        nRF24L01_TxPacket(TxBuf);        //&nbsp;Transmit&nbsp;Tx&nbsp;buffer&nbsp;data</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">Delay(6000);</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">led&nbsp;=&nbsp;~led; </span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">if(nRF24L01_RxPacket(RxBuf))</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;{</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;RxBuf[31]&nbsp;='\0';</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsprintf(RxBuf);         &nbsp;&nbsp;&nbsp;//&nbsp;串口发送数据</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;BufSet(RxBuf,32,0);        &nbsp;&nbsp;&nbsp;//清除缓存区</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;}</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;}</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">}</span><br />
<br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*****************************************************************************************************/</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">void&nbsp;SetRX_Mode(void)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">{</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">CE=0;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);&nbsp;&nbsp;//选择通道0的有效数据宽度&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG&nbsp;+&nbsp;CONFIG,&nbsp;0x0f);&nbsp;&nbsp;&nbsp;         //&nbsp;IRQ收发完成中断响应,16位CRC        ,主接收</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">CE&nbsp;=&nbsp;1;&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">inerDelay_us(130);</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">}</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/****************************************************************************************************/</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*函数:void&nbsp;SetTX_Mode(void)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*功能:数据发送配置&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/****************************************************************************************************/</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">void&nbsp;SetTX_Mode(void)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">{</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">CE=0;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_Write_Buf(WRITE_REG&nbsp;+&nbsp;TX_ADDR,&nbsp;TX_ADDRESS,&nbsp;TX_ADR_WIDTH);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写本地地址</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG+SETUP_RETR,0x1a);//设置自动重发间隔时间:500us&nbsp;+&nbsp;86us;最大自动重发次数:10次&nbsp; </span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;SPI_RW_Reg(WRITE_REG+CONFIG,0x0e);&nbsp;&nbsp;&nbsp;&nbsp;//配置基本工作模式的参数WR_UP,EN_CRC,16BIT_CRC,接收模式,开启所有中断</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">CE&nbsp;=&nbsp;1;&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">inerDelay_us(130);&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">}</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">//****************************************************************************************</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*NRF24L01初始化</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">//***************************************************************************************/</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">void&nbsp;init_NRF24L01(void)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">{</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;inerDelay_us(100);</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;CE=0;//待机模式Ⅰ&nbsp;(写寄存器之前一定要进入待机模式或掉电模式)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;CSN=1;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;SCK=0;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;IRQ=1;        &nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_Write_Buf(WRITE_REG&nbsp;+&nbsp;RX_ADDR_P0,&nbsp;RX_ADDRESS,&nbsp;RX_ADR_WIDTH);&nbsp;&nbsp;&nbsp;//&nbsp;写接收端地址</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG&nbsp;+&nbsp;EN_AA,&nbsp;0x01);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;频道0自动        ACK应答允许 </span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG&nbsp;+&nbsp;EN_RXADDR,&nbsp;0x01);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;允许接收地址只有频道0,如果需要多频道可以参考Page21&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG&nbsp;+&nbsp;RF_CH,40);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;设置信道工作为2.4GHZ,收发必须一致</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG&nbsp;+&nbsp;RF_SETUP,&nbsp;0x0f);&nbsp;&nbsp;&nbsp;         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置发射速率为1MHZ,发射功率为最大值0dB</span><br />
<br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">CE&nbsp;=&nbsp;1;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">}</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/******************************************************************************************************/</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*函数:unsigned&nbsp;char&nbsp;nRF24L01_RxPacket(unsigned&nbsp;char*&nbsp;rx_buf)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*功能:数据读取后放如rx_buf接收缓冲区中</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/******************************************************************************************************/</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">unsigned&nbsp;char&nbsp;nRF24L01_RxPacket(unsigned&nbsp;char*&nbsp;rx_buf)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">{</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;revale=0;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">sta=SPI_Read(STATUS);        //&nbsp;读取状态寄存其来判断数据接收状况</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG+STATUS,sta);&nbsp;&nbsp;&nbsp;//接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">if(RX_DR)         //&nbsp;判断是否接收到数据</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">{</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">&nbsp;&nbsp;&nbsp;&nbsp;CE&nbsp;=&nbsp;0;&nbsp;         //SPI使能</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);//&nbsp;read&nbsp;receive&nbsp;payload&nbsp;from&nbsp;RX_FIFO&nbsp;buffer</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(FLUSH_RX,0xff);//清除RX&nbsp;FIFO寄存器&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">revale&nbsp;=1;         //读取数据完成标志</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">}</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">return&nbsp;revale;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">}</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/***********************************************************************************************************</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*函数:void&nbsp;nRF24L01_TxPacket(unsigned&nbsp;char&nbsp;*&nbsp;tx_buf)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*功能:发送&nbsp;tx_buf中数据</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/**********************************************************************************************************/</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">void&nbsp;nRF24L01_TxPacket(unsigned&nbsp;char&nbsp;*&nbsp;tx_buf)</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">{</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">CE=0;         //StandBy&nbsp;I模式 </span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_Write_Buf(WR_TX_PLOAD,&nbsp;tx_buf,&nbsp;TX_PLOAD_WIDTH);&nbsp;         &nbsp;//&nbsp;装载数据 </span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">CE=1;         &nbsp;//置高CE,激发数据发送 </span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">while(IRQ!=0);//等待发送完成</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">sta=SPI_Read(STATUS);&nbsp;&nbsp;//读取状态寄存器的值        &nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">SPI_RW_Reg(WRITE_REG+STATUS,sta);&nbsp;//清除TX_DS或MAX_RT中断标志</span><br />
<br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">inerDelay_us(10);</span><br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">}</span><br />
<br />
<span style="color:#333333;font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:24px;background-color:#F5F5F5;">/*****************************************END&nbsp;FILE***************************************************/</span>

最佳答案

查看完整内容[请看2#楼]

回复【2楼】正点原子: --------------------------------- 恩恩,我手头上只有一个mini开发板,这个代码是跑在51单片机上的。  问题我现在已经解决了,在接收函数里将CE = 0;去掉就可以了!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-11-9
在线时间
0 小时
 楼主| 发表于 2014-6-2 10:45:01 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>恩恩,我手头上只有一个mini开发板,这个代码是跑在51单片机上的。&nbsp;&nbsp;问题我现在已经解决了,在接收函数里将CE&nbsp;=&nbsp;0;去掉就可以了!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-6-2 10:50:57 | 显示全部楼层
请参考我们的开发板例子
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

110

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2013-9-16
在线时间
0 小时
发表于 2014-12-25 12:29:18 | 显示全部楼层
这个还是软件的问题,
RFinchina 团队欢迎无线方面的技术交流 QQ 474882985
回复

使用道具 举报

5

主题

110

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2013-9-16
在线时间
0 小时
发表于 2014-12-25 12:30:24 | 显示全部楼层
主机可以通过切换频率参数来分别和B&nbsp;C节点通讯,方法如下
<br>&nbsp;
<br>第一步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第二步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x9F&nbsp;0x00&nbsp;0x03&nbsp;0x07&nbsp;0x2f&nbsp;0xD8
<br>第三步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;0x07&nbsp;0x2f&nbsp;0xD8&nbsp;后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第四步-&gt;&nbsp;输入要传的数据即可将数据传输给B节点
<br>&nbsp;
<br>&nbsp;
<br>第五步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第六步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x9F&nbsp;0x00&nbsp;0x03&nbsp;0x07&nbsp;0x33&nbsp;0xC0
<br>第七步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;0x07&nbsp;0x33&nbsp;0xC0后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第八步-&gt;&nbsp;输入要传的数据即可将数据传输给C节点
<br>&nbsp;
<br>更多节点以此类推即可
<br>&nbsp;
<br>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<br>例如变址多点通讯,
<br>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<br>&nbsp;
<br>例如
<br>当主机为WLK01L39模块,
<br>主机A本机地址1:0x01,本机地址2:0x01,
<br>从机B本机地址1:0x02&nbsp;,本机地址2:0x01&nbsp;,
<br>从机C本机地址1:0x03,本机地址2:0x01&nbsp;,&nbsp;&nbsp;
<br>主机可以通过切换目标地址参数来分别和B&nbsp;C节点通讯,因为在频率一样的前提下
<br>只有主机的目标地址和从机的本机地址一致时,对应从机才能与其建立通讯,并接收数据方法如下
<br>&nbsp;
<br>第一步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第二步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x8E&nbsp;0x00&nbsp;0x01&nbsp;0x02&nbsp;
<br>第三步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;&nbsp;0x02&nbsp;后再&nbsp;设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第四步-&gt;&nbsp;输入要传的数据即可将数据传输给B节点
<br>&nbsp;
<br>&nbsp;
<br>第五步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第六步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x8E&nbsp;0x00&nbsp;0x01&nbsp;0x03
<br>第七步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;&nbsp;0x03&nbsp;后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第八步-&gt;&nbsp;输入要传的数据即可将数据传输给C节点
<br>&nbsp;
<br>更多节点以此类推即可
<br>&nbsp;
<br>###################################################################
<br>多点通讯还有一种最简单的方式,就是点名通讯
<br>###################################################################
<br>1.主机和从机的参数都完全一样
<br>2.都处于正常收发模式
<br>3.当主机A发0x01(该指令可自定义),
<br>&nbsp;&nbsp;当从机B和从机C都收到0x01,
<br>&nbsp;&nbsp;从机B视0x01为上传数据命令,立刻发射要上传数据,然后主机A会收到B上传数据,而从机C视0x01为无效指令,不发送数据
<br>&nbsp;&nbsp;当主机A发0x02(该指令可自定义),
<br>&nbsp;&nbsp;当从机B和从机C都收到0x01,
<br>&nbsp;&nbsp;从机C视0x02为上传数据指令,立刻发射要上传数据,然后主机A会收到C上传数据,而从机B视0x02为无效指令,不发送数据
<br>更多节点以此类推即可
<br>------------------
<br>NRF905&nbsp;RF903&nbsp;CC1100&nbsp;CC2500&nbsp;CC1020&nbsp;NRF2401&nbsp;NRF24L01&nbsp;无线数传芯片/模块性能汇总及应用指南
<br>你好,我们是无线制造供应商,欢迎交流
<br>QQ:35625400&nbsp;&nbsp;&nbsp;&nbsp;MSN:ll88mm88@hotmail.com&nbsp;
<br>HONE:13704018223&nbsp;&nbsp;&nbsp;陈工
RFinchina 团队欢迎无线方面的技术交流 QQ 474882985
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 15:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表