搜索
bottom↓
回复: 2

弄了好多天还是接收不到数据 %>_<% 请过来人帮忙

[复制链接]

出0入0汤圆

发表于 2013-9-16 12:13:03 | 显示全部楼层 |阅读模式
本帖最后由 petermxw 于 2013-9-16 12:14 编辑

最近一直弄NRF24L01+ 发送查看 STATUS寄存器是0x2E FIFO寄存器是0X11。但是接收端 STATUS 0x0E FIFO 0x11。 供电部分也加了106和104。代码用的厂家调试的代码 哎 没有解决思路 顺便传一份中文版的datasheet 对了 我这个模块应该是台湾版的Si24R1。淘宝4块多一个的。
  1. void NRF24L01_Tx_Mode(uint8 *TxDate)
  2. {  //发送模式

  3.     NRF24L01_CE_LOW;  
  4.         NRF24L01_Write_Register(W_REGISTER + SETUP_AW,0x02);
  5.         NRF24L01_Write_Date(W_REGISTER + TX_ADDR, TX_ADDRESS, TX_ADDR_WITDH);    // Writes TX_Address to nRF24L01
  6.         NRF24L01_Write_Date(W_REGISTER + RX_ADDR_P0, TX_ADDRESS, TX_ADDR_WITDH); // RX_Addr0 same as TX_Adr for Auto.Ack
  7.           NRF24L01_Write_Date(W_REGISTER, Buff, TX_PLOAD_WIDTH); // Writes data to TX payload

  8.           NRF24L01_Write_Register(W_REGISTER + EN_AA, 0x01);      // Enable Auto.Ack:Pipe0
  9.           NRF24L01_Write_Register(W_REGISTER + EN_RXADDR, 0x01);  // Enable Pipe0
  10.           NRF24L01_Write_Register(W_REGISTER + SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans...
  11.           NRF24L01_Write_Register(W_REGISTER + RF_CH, 40);        // Select RF channel 40
  12.           NRF24L01_Write_Register(W_REGISTER + RF_SETUP, 0x27);   // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
  13.           NRF24L01_Write_Register(W_REGISTER + CONFIG, 0x0e);     // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled..
  14.         NRF24L01_CE_HIGH;
  15.         _delay_us(200);//保持10us秒以上
  16.         #ifdef DEBUG

  17.         #endif
  18. }
复制代码
  1. void NRF24L01_Rx_Mode(void)
  2. {
  3. //        Power_Off();
  4.     NRF24L01_CE_LOW;
  5.                 NRF24L01_Write_Register(W_REGISTER + SETUP_AW,0x02);
  6.           NRF24L01_Write_Date(W_REGISTER + RX_ADDR_P0, TX_ADDRESS, TX_ADDR_WITDH); // Use the same address on the RX device as the TX device
  7.           NRF24L01_Write_Register(W_REGISTER + EN_AA, 0x01);      // Enable Auto.Ack:Pipe0
  8.           NRF24L01_Write_Register(W_REGISTER + EN_RXADDR, 0x01);  // Enable Pipe0
  9.           NRF24L01_Write_Register(W_REGISTER + RF_CH, 40);        // Select RF channel 40
  10.           NRF24L01_Write_Register(W_REGISTER + RX_PW_P0, TX_PLOAD_WIDTH); // Select same RX payload width as TX Payload width
  11.           NRF24L01_Write_Register(W_REGISTER + RF_SETUP, 0x27);   // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
  12.           NRF24L01_Write_Register(W_REGISTER + CONFIG, 0x0f);     // Set PWR_UP bit, enable CRC(2 bytes) & Prim:RX. RX_DR enabled..
  13.           NRF24L01_CE_HIGH;
  14.         _delay_us(200);   
  15.                 #ifdef DEBUG

  16.         #endif
  17. }
复制代码
  1. void NRF24L01_CLERN_ALL(void)
  2. {
  3.         NRF24L01_Write_Register(W_REGISTER+STATUS,0xff);
  4.         NRF24L01_CSN_LOW;
  5.         NRF24L01_SPI(0xE2);
  6.           NRF24L01_SPI(0xE1);
  7.           NRF24L01_CSN_HIGH;

  8. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-9-16 12:19:55 | 显示全部楼层
顺便说说 我用万用表量VDD_PA电压为0  我看资料上写应该是1.8V。 我买了四块都是0应该排除硬件问题

出0入0汤圆

 楼主| 发表于 2013-10-7 18:22:44 | 显示全部楼层
没人回答 自己解决了 我在SPI读写处添加了适当的延时。ACK 非ACK都好用。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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