打印
[STM32F1]

2.4G A7105通信读写FIFO不正常,有人用过吗

[复制链接]
575|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunnyhgh|  楼主 | 2015-11-30 08:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用GPIO1/2进行检测,
GPIO1用于WTR(等待TX/RX完毕),GPIO2 用于接收的FSYNC(RF ID同步)检测
发送和接收时GPIO1和2都有脉冲,说明数据已经发送出去,接收已经成功了的。
但是FIFO读写不正常,都是0,有高手知道什么原因吗?
这个是FIFO  TX的写函数:// TX 读 FIFO
void write_data_to_fifo(U8 send_cnt)
{
  U8 i = 0;
  if(send_cnt > RF_FIFO_LEN)
  {
    send_cnt = RF_FIFO_LEN;
  } // A7105_write_command(RF_CMD_TX_FIFO_RESET);    RF_SCS_LOW();
  SPI_RWbyte(RF_REG_FIFO_DATA);        
  for(i=0; i<send_cnt; i++)                                                // 这里固定写RF_FIFO_LEN个字节
  {
    SPI_RWbyte(i);//(Rf_Send_Buf);            
  }
  RF_SCS_HIGH();  


}

// RX 读FIFO
void read_data_from_fifo(void)
{
  U8 i = 0;
// A7105_write_command(RF_CMD_RX_FIFO_RESET);
   RF_SCS_LOW();
   SPI_RWbyte(RF_REG_FIFO_DATA|0x40);        
  for(i=0; i<RF_FIFO_LEN; i++)                                                // 这里是固定读RF_FIFO_LEN个字节
  {
    Rf_Rec_Buf = SPI_RWbyte(0);
  }
  RF_SCS_HIGH();        
}


// TX 发送数据
void send_data_by_RF(unsigned char  send_byte_cnt)
{
    if(send_byte_cnt)
    {        
        A7105ProcessOK=OFF;// TX完毕之后,在中断中置1
        write_data_to_fifo(send_byte_cnt);                // 写数据到fifo   
        A7105_entry_tx();                                                // 进入发送状态发送数据
        Delay(150);                                                        // 从通过软件命令让RF进入发送状态到开始发送,这中间有140us的延时                                                                                // 因此这里要经过>=140us 的延时后在中断中再读GPIO1的状态                                                                                                                                                
        while(A7105ProcessOK==OFF);        //  等待TX完毕
    }
}
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

11

帖子

0

粉丝