发 帖  
原厂入驻New
[问答] 单片机控制NRF24L01发送,STM32板没有接收到数据怎么办?
170 STM32 单片机
分享
我用单片机做发送程序,检测到了发送完成标志位,但是在原子哥的MINISTM32板子上也没有接收到数据。。。<br />
<br />
<br />
<br />
主函数while(1)里面的程序段:
<div   style="background-color:#E8E8E8;">
[C] 纯文本查看 复制代码
NRFSetTxMode(TxDate); //·???while(CheckACK());//?ì????·?·????ê±?
</div>
<div   style="background-color:#E8E8E8;">
[C] 纯文本查看 复制代码
//发送程序:
[C] 纯文本查看 复制代码
/*****************NRF?è????·?????????·???????******************************/void NRFSetTxMode(uchar *TxDate){//·???????    CE=0;    NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);//???????÷????+???????·????????+???????·+???·?í??NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);//?????????????è±????????¨??0???·??·??????·?à??NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);//???????? /******?????????????÷????**************/  NRFWriteReg(W_REGISTER+EN_AA,0x00);       // ?????????¨??0×???????  NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);   // ?????????¨??0  NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a);  // ×?????·????±????250us+86us??×?????·?10??  NRFWriteReg(W_REGISTER+RF_CH,0x40);         // ?????????¨??0x40  NRFWriteReg(W_REGISTER+RF_SETUP,0x07);    // ??????????1Mbps??·???????0dBm???????ù·??ó?÷????NRFWriteReg(W_REGISTER+CONFIG,0x0e);      // CRC??????16??CRC???é??????  CE=1;Delay(5);//±???10us??????}
</div>
应答信号检测程序:<br />
<div   style="background-color:#E8E8E8;">
[C] 纯文本查看 复制代码
/****************************?ì??????????******************************/uchar CheckACK(){  //????·???sta=NRFReadReg(STATUS);                    // ·???×????????÷SendChar(sta);SendString("\r\n");   //接收到STATUS 寄存器的数据为2E...IF(TX_DS || MAX_RT) //·????ê±?????{   NRFWriteReg(W_REGISTER+STATUS,0xff);  // ????TX_DS?òMAX_RT????±ê??   CSN=0;   NRFSPI(FLUSH_TX);//????????FIFO ???????ü?????????á???????????????ó?????????ó????×?????         CSN=1;    return(0);}else   return(1);}/******************??????·???????????????????????RX????*********************///????????????uchar NRFRevDate(uchar *RevDate){    uchar RevFlags=0; sta=NRFReadReg(R_REGISTER+STATUS);//·????????ó????×????????÷     if(RX_DR)// ??????·??????????? {    CE=0; //SPI????NRFReadRxDate(R_RX_PAYLOAD,RevDate,RX_DATA_WITDH);// ??RXFIFO????????RevFlags=1;   //?????????ê??±ê??  } NRFWriteReg(W_REGISTER+STATUS,0xff); //???????????óRX_DR,TX_DS,MAX_PT????????1???¨????1??????????±ê return(RevFlags);}
</div>
<br />
0
2020-4-23 04:35:59   评论 分享淘帖 邀请回答

相关问题

10个回答
<br>论坛搜索下吧,51发,STM32收,论坛有好多人问过,也做出来了的。你参考下他们的。
2020-4-23 06:54:18 评论

举报

应该怎么测试更好呢?
2020-4-23 07:11:56 评论

举报

2020-4-23 07:20:19 评论

举报

<a href="@发烧友">@发烧友</a>
应该没那么难吧。。。原子的mini的板子应该很好用的
2020-4-23 07:46:09 评论

举报

<br>对啊。但是我自己用单片机写的发送程序。我检测发送完成标志位,都是正常的,但是mini板上就是收不到数据。
<br>还有那些原因呢?
2020-4-23 08:05:59 评论

举报

2020-4-23 08:13:46 评论

举报

<br>没有。相隔不到1米
2020-4-23 08:29:34 评论

举报

<br>你看我的代码了不?应该理论上找不出什么问题吧
2020-4-23 08:44:50 评论

举报

为什么这么多乱码。。。
2020-4-23 09:00:54 评论

举报

只有小组成员才能发言,加入小组>>

106个成员聚集在这个小组

加入小组

热门话题

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

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