OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3934|回复: 6

关于NRF24L01 发送一个数据包的寄存器问题

[复制链接]

15

主题

25

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-12-24
在线时间
33 小时
发表于 2019-3-7 22:37:56 | 显示全部楼层 |阅读模式
#define NRF_READ_REG    0x00  
#define NRF_WRITE_REG   0x20
#define RD_RX_PLOAD     0x61  
#define WR_TX_PLOAD     0xA0  



NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5); ------->A
NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);------->B



A式是在 NRF24L01_Check 函数中,我可以理解, 一个 【写配置寄存器的指令+发送端地址(TX_ADDR)】,把  buf  数组里的成员循环写入发送端地址中去,写5个字节。
B式是在  u8 NRF24L01_TxPacket(u8 *txbuf)  中,发送一个数据包,其中  WR_TX_PLOAD  这个指令在宏定义中表示寄存器操作命令,为什么要把数据写到这个地址中去呢?还一次写32位的数据。





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

1402

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5721
金钱
5721
注册时间
2015-8-25
在线时间
941 小时
发表于 2019-3-8 09:08:42 | 显示全部楼层
写入这个地址,2401自己就发送出去了,就是这么简单。不然你怎么发送?
回复 支持 反对

使用道具 举报

15

主题

25

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-12-24
在线时间
33 小时
 楼主| 发表于 2019-3-8 19:36:56 | 显示全部楼层
szczyb1314 发表于 2019-3-8 09:08
写入这个地址,2401自己就发送出去了,就是这么简单。不然你怎么发送?

我只是不理解  WR_TX_PLOAD  这个地址是什么意思
为什么不是   NRF_WRITE_REG+TX_ADDR (写指令+发送端地址) 而要改写成这样
回复 支持 反对

使用道具 举报

21

主题

1402

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5721
金钱
5721
注册时间
2015-8-25
在线时间
941 小时
发表于 2019-3-10 11:48:41 | 显示全部楼层

回帖奖励 +6 金钱

奔驰的战猪 发表于 2019-3-8 19:36
我只是不理解  WR_TX_PLOAD  这个地址是什么意思
为什么不是   NRF_WRITE_REG+TX_ADDR (写指令+发送端 ...

你看它的数据手册吧
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复 支持 反对

使用道具 举报

头像被屏蔽

0

主题

209

帖子

0

精华

禁止发言

积分
276
金钱
276
注册时间
2019-3-4
在线时间
4 小时
发表于 2019-3-27 08:07:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

10

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1499
金钱
1499
注册时间
2019-5-2
在线时间
153 小时
发表于 2019-7-31 14:35:34 | 显示全部楼层

回帖奖励 +6 金钱

写入指定地址啊
回复 支持 反对

使用道具 举报

1

主题

80

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2977
金钱
2977
注册时间
2017-7-10
在线时间
342 小时
发表于 2019-8-31 10:55:36 | 显示全部楼层
NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5); ------->这个是发送端的发送地址,包裹的地址
NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);------->这个是发送数据的FIFO,即发送的具体内容,包裹里的东西
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-3-29 15:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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