RT-Thread 当前最新的 nRF24L01 组件这么用

本文介绍了RT-Thread中nRF24L01组件的最新使用方法,包括配置、发送失败原因分析、自定义通信数据的加入,以及测试过程中遇到的问题和解决思路。针对发送失败,作者提供了可能的原因和解决方案,同时分享了如何在不同硬件平台上进行交叉测试以确保兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景介绍:
RT-Thread 的 nRF24L01 组件当前最近的更新发生在 2020-02-04。
Sugar 本篇从使用者的角度说一下最新组件的用法和测试结果。

使用方法

想了解一个 github 上的开源项目,首先就要去看项目的 ReadMe.md

nRF24L01 的开源地址是https://github.com/sogwms/nrf24l01.git,在开源项目上有提到:

点击 user_guide.md 看到这么一段代码:

如果读者是个玩儿代码的老手,并且对 RT-Thread 比较熟悉,那么看到这里就已经能会用了。当然,为了让新手也能顺利使用,下面 Sugar 还会继续啰嗦啰嗦。

使用方法看 demo。demo 的截图这里就不放了,直接说 Sugar 从 demo 上学到的用法(直接讲代码)。

Sugar 在 RT-Thread 社区上看到这么个问题:

对于引脚配置,Sugar 没有使用 env 直接改了代码(上面图中说了怎么改)。如果不知道引脚编号,在代码里直接用 rtt 的 GET_PIN() 就行了。

上面说了 CE 和 IRQ 的引脚,片选 CS 的引脚在代码里这样写的:

rtconfig.h 开启必要的宏

对于 demo,这样下来发送角色ROLE_PTX的全部配置就完成了。设计者其实已经做到了极简配置(只留了 5 个宏定义,都在上面的图片里)。

发送失败怎么回事

如果读者在跟着做,到这里会得到这样的结果:

上图来自 RT-Thread 社区,如果读者遇到了这个现象,那么恭喜读者,按照 Sugar 的实测,这样离成功就不远了。下面先来解释一下为什么发送失败,其实这个答案开源作者已经说了,但需要再深一步解释才能让初学者也看懂,如下:

加入自己的通信数据

关于 RT-Thread 使用 nRF24L01 组件加入自定义通信数据,Sugar 曾经写过两篇推文:

1、《为了解决 RT-Thread nRF24L01 软件包在 STM32F103C8 上死活调不通的问题,我都干了啥?》

2、《RT-Thread mavlink 甜蜜相拥教程》

新的 nRF24L01 组件包(v2.0.0)与上一版(v1.0.0)不同的是:作者把收和发分别放在了两个不同的回调函数里。这与 Sugar 用过的 CubeMX 裸机版驱动的设计一致,关于 CubeMX 裸机驱动 Sugar 写过一篇推文:

《一起来做遥控车(让车听遥控的话)》

nRF24L01 的新组件下把接收放在 rx_ind() 下,把发送放在 tx_done() 下就行了,以 ROLE_PTX 为例,Sugar 给出下面完整代码:

#include <nrf24l01.h>
#include <rtconfig.h>
#include <entry.h>
#include <rtt_interface.h>
#include <mavlink.h>
#include <stm32f4xx_hal.h>

#define NRF24_DEMO_ROLE                 ROLE_PTX
#define NRF24_DEMO_SEND_INTERVAL        10
#define NRF24_DEMO_SPI_DEV_NAME         "spi10"
#define NRF24_DEMO_CE_PIN               GET_PIN(B, 6)
#define NRF24_DEMO_IRQ_PIN              GET_PIN(B, 8)

static uint32_t last_timestamp;
static uint32_t timestamp;

extern UART_HandleTypeDef huart1;

ap_t       mav_data;
vel_target vel={
   .vel_x = 0.0f, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值