Skip to content

【番外】其他模块驱动学习

1.NRF24L01

1.引脚定义

image-20240430202614534

2.工作原理

image-20240430202720735

1.配置发送端的发送和接收地址

<img src="./assets/image-20240430202806168.png" alt="image-20240430202806168" style="zoom:20%;" />

2.配置接收端的接收地址,要和发送端一致

<img src="./assets/image-20240430202843400.png" alt="image-20240430202843400" style="zoom:25%;" />

3.配置config寄存器:控制芯片是属于发送还是接收状态:

​ 最后一位是0则为发送状态,1为接收状态

<img src="./assets/image-20240430203003099.png" alt="image-20240430203003099" style="zoom:25%;" />

​ 这里都配置成了接收状态

4.配置EN_AA自动应答

​ 这里开启了通道0的自动应答模式

<img src="./assets/image-20240430203059867.png" alt="image-20240430203059867" style="zoom:25%;" />

5.往接收寄存器发送一个数据

<img src="./assets/image-20240430203150393.png" alt="image-20240430203150393" style="zoom:25%;" />

6.使用CE引脚,作用相当于笔记本的待机按键,由主机控制,0时为待机状态

​ 只有在待机状态下才能改变芯片的工作模式

​ 所以这一步操作:CE置0,写入CONFIG寄存器为0000 1110,即发送模式

7.置CE引脚为1,此时芯片开机,发送模式,发送数据出去。

​ 同时,芯片会自动将CONFIG最后一位置1(因为自动应答开启了)

8.接收端接收到数据,此时STATUS寄存器的第1位自动置1

<img src="./assets/image-20240430203547774.png" alt="image-20240430203547774" style="zoom:25%;" />

9.芯片进入中断,IRQ被芯片拉低,提醒MCU该来拿数据了。

10.此时,接收端会记录接收到的这个数据的地址,然后拿这个地址作为发送地址再发送一个应答信号。所以这也就是为什么发送端也要配置接收地址的原因

11.发送端接收到应答信号以后,STATUS寄存器第2位自动置1,表示接收到应答信号了

<img src="./assets/image-20240430203859477.png" alt="image-20240430203859477" style="zoom:25%;" />

​ 同时芯片会进入中断,然后IRQ被芯片拉低,告诉MCU我发送出去了也接收到应答信号了。

以上就是发送一包数据包的简单流程。

3.接收地址和发送地址

image-20240430204059321

相关寄存器
1.TX_ADDR(发送地址)

image-20240430204423345

2.RX_ADDR_P0(接收地址0)

image-20240430204454757

3.RX_ADDR_P1(接收地址1)

RX_ADDR_P2(接收地址2)

RX_ADDR_P3(接收地址3)

RX_ADDR_P4(接收地址4)

RX_ADDR_P5(接收地址5)

image-20240430204618892

4.重要寄存器

image-20240430204747862

5.相关寄存器

image-20240430205304549

image-20240430205444956

image-20240430205546651

6.重要指令

image-20240430205818124

最近更新