新手入门
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2013-9-20
- 在线时间
- 0 小时
|
<span style="font-size:18px;">我</span><span style="font-size:18px;">最近在做一个</span><span style="font-size:18px;line-height:27px;">近距离</span><span style="font-size:medium;">监控装置 用nrf24l01 模块 一个2.4G模块需要在接受和发送消息之间相互切换。</span><br />
<span style="font-size:medium;">我的遇到的问题是 当我从接收模式<span style="line-height:27px;color:#e53333;">RX_Mode()</span>切换到发送模式<span style="line-height:27px;color:#e53333;">TX_Mode()<span style="color:#000000;">后,程序一直停在这个函数</span></span><span style="line-height:27px;color:#e53333;">NRF24L01_TxPacket(tmp_buf)</span>里面,主要是停在<span style="line-height:27px;color:#e53333;">while(NRF24L01_IRQ!=0)//等待发送完成</span>这个函数里面<br />
而我直接使用发送模式就没有这个问题,有人碰到过这样的问题吗??我用的是正点原子的代码<br />
这个是NRF24L01_TxPacket()函数<br />
<div><span style="font-size:14px;">u8 NRF24L01_TxPacket(u8 *txbuf)</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">{</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">u8 sta;</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">SPIx_SetSpeed(SPI_BaudRatePrescaler_8);</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">Clr_NRF24L01_CE;</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">NRF24L01_Write_Buf(NRF24L01_WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">Set_NRF24L01_CE;</span><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;"> </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">while(NRF24L01_IRQ!=0); //<span style="background-color:#ffffff;color:#e53333;font-size:24px;">程序就停在这里了!!!!</span></span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">sta=NRF24L01_Read_Reg(STATUS); </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">NRF24L01_Write_Reg(NRF24L01_WRITE_REG+STATUS,sta); </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">if(sta&MAX_TX)</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">{</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">NRF24L01_Write_Reg(NRF24L01_FLUSH_TX,0xff);</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">return MAX_TX; </span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">}</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">if(sta&TX_OK)</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">{</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">return TX_OK;</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">}</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">return 0xff;</span></div>
<div><span class="Apple-tab-span" style="white-space:pre;font-size:14px;"> </span><span style="font-size:14px;">}</span></div>
</span> |
|