打印

24l01问题,求指点

[复制链接]
497|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
d865841995|  楼主 | 2015-3-20 23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GPIO_WriteLow(NRF24L01_CE_PORT,NRF24L01_CE_PIN);  
  NRF24L01_write_register_some(WR_TX_PLOAD,data,TX_DATA_WITDH);
  GPIO_WriteHigh(NRF24L01_CE_PORT,NRF24L01_CE_PIN);


这程序是24L01发送数据时用到的程序,我用的是STM8,参考风驰的例程,可有点不明白的是为什么要拉低CE引脚??


u8 NRF24L01_check_ack()
{
    u8 sta;
    sta=NRF24L01_read_register_single(STATUS);   //读取状态寄存器
    //判断是否产生发送完毕中断或者重复触发中断
    if((sta&0x20)||(sta&0x10))
    {   
        NRF24L01_write_register_single(W_REGISTER+STATUS,0xff); //清除TX_DS或者MAX_RT中断标志
        GPIO_WriteLow(NRF24L01_CSN_PORT,NRF24L01_CSN_PIN);
        NRF24L01_SPI_RW(FLUSH_TX);             //清空FIFO
        GPIO_WriteHigh(NRF24L01_CSN_PORT,NRF24L01_CSN_PIN);
        return 0;
    }
    else
        return 1;

}

这个程序是检测发送是否成功的程序,我的疑问是  清除TX_DS或者MAX_RT中断标志这句用到了  W_REGISTER命令,不是应该先拉低CE引脚才可以么?  我实测的结果是没有拉低CE引脚可也清除了相应标志。


大家都来说说哈!

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

293

帖子

6

粉丝