野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16977|回复: 2

请问 火哥各位大神 nrf2401能不能发16位的数

[复制链接]
发表于 2014-11-22 22:06:18 | 显示全部楼层 |阅读模式
请问  火哥  nrf2401能不能发16位的数       并指出  在野火那个  nrf2401的例程里应该修改哪里

回复

使用道具 举报

 楼主| 发表于 2014-11-22 22:07:00 | 显示全部楼层
自己顶一个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-22 22:10:16 | 显示全部楼层
/*开始发送数据*/       
    status = NRF_Tx_Dat(txbuf);          

/**
  * @brief   用于向NRF的发送缓冲区中写入数据
  * @param   
  *                @arg txBuf:存储了将要发送的数据的数组,外部定义       
  * @retval  发送结果,成功返回TXDS,失败返回MAXRT或ERROR
  */
u8 NRF_Tx_Dat(u8 *txbuf)
{
        u8 state;  

         /*ce为低,进入待机模式1*/
        NRF_CE_LOW();

        /*写数据到TX BUF 最大 32个字节*/                                               
   SPI_NRF_WriteBuf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);

      /*CE为高,txbuf非空,发送数据包 */   
         NRF_CE_HIGH();
                 
          /*等待发送完成中断 */                           
        while(NRF_Read_IRQ()!=0);        
       
        /*读取状态寄存器的值 */                              
        state = SPI_NRF_ReadReg(STATUS);

         /*清除TX_DS或MAX_RT中断标志*/                  
        SPI_NRF_WriteReg(NRF_WRITE_REG+STATUS,state);        

        SPI_NRF_WriteReg(FLUSH_TX,NOP);    //清除TX FIFO寄存器

         /*判断中断类型*/   
        if(state&MAX_RT)                     //达到最大重发次数
                         return MAX_RT;

        else if(state&TX_DS)                  //发送完成
                         return TX_DS;
         else                                                  
                        return ERROR;                 //其他原因发送失败
}


/**
  * @brief   用于向NRF的寄存器中写入一串数据
  * @param   
  *                @arg reg : NRF的命令+寄存器地址
  *                @arg pBuf:存储了将要写入写寄存器数据的数组,外部定义
  *         @arg bytes: pBuf的数据长度
  * @retval  NRF的status寄存器的状态
  */
u8 SPI_NRF_WriteBuf(u8 reg ,u8 *pBuf,u8 bytes)
{
         u8 status,byte_cnt;
         NRF_CE_LOW();
            /*置低CSN,使能SPI传输*/
         NRF_CSN_LOW();                       

         /*发送寄存器号*/       
           status = SPI_NRF_RW(reg);
       
            /*向缓冲区写入数据*/
         for(byte_cnt=0;byte_cnt<bytes;byte_cnt++)
                SPI_NRF_RW(*pBuf++);        //写数据到缓冲区          
                    
        /*CSN拉高,完成*/
          NRF_CSN_HIGH();                       
  
          return (status);        //返回NRF24L01的状态                
}
是不是改这里
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 19:01 , Processed in 0.058423 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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