野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10048|回复: 2

关于nRF24L01的发送/读取缓冲器写入数据的问题

[复制链接]
发表于 2021-10-20 00:21:43 | 显示全部楼层 |阅读模式
野火论坛202110200017506972..png 野火论坛202110200016456900..png
其实就是有两句语句不太懂想请教一下各位打扰。
第一句就是:
/*读取状态寄存器的值 */                              
state = SPI_NRF1_ReadReg(STATUS);

/*清除TX_DS或MAX_RT中断标志*/                  
SPI_NRF1_WriteReg(NRF_WRITE_REG+STATUS,state);        
把STATUS寄存器的状态读出来我能理解,可是再使用WriteReg函数把state写入到STATUS里面就可以清除TX_DS或者MAX_RT中断标志是怎么回事呢?
第二句就是:
SPI_NRF1_WriteReg(FLUSH_TX,NOP);    //清除TX FIFO寄存器
我一直没有搞懂TX FIFO是啥,看数据手册的寄存器表也没有找到这个寄存器,真的挺奇怪的。

回复

使用道具 举报

发表于 2021-10-21 08:51:38 | 显示全部楼层
SPI_NRF1_WriteReg(NRF_WRITE_REG+STATUS,state);   这里写入state,相关寄存器位应该是有清零条件的吧
SPI_NRF1_WriteReg(FLUSH_TX,NOP);   这个感觉应该是清空发送缓冲区
回复 支持 反对

使用道具 举报

发表于 2021-11-1 21:25:47 来自手机 | 显示全部楼层
要仔细看数据手册,这几个status标记寄存器就是写入1就清零。fifo不是个寄存器,就是个缓冲区,通过flush命令进行清除操作
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 08:29 , Processed in 0.061280 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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