2.关于RT-Thread 移植SPI NRF24L01_☆摔得流行★的博客-程序员宝宝

技术标签: 总结  

一、描述

我默认你有良好的基础,使用过RT-Thread Studio、CubeMX等软件开发程序,所以文章只会讲解细节,毕竟时代在变化。

对于NRF24L01,作为从机与stm32使用SPI协议进行通信,你得先了解写SPI协议,什么是CPOL、CPHA,配置他们有什么用,推荐看下原子哥视频,简单,速度快,最好标准库3.5裸机也写下程序,了解下结构体对相关寄存器的配置,毕竟使用CubeMX或IDE配置实在是太简单了,当然也忘得快。当然你想速成也可以。

二、CubeMX或CubeIDE配置程序

对于配置NRF24L01的哪些寄存器实现配置哪些模式、什么发送速率,我就不讲解了,有特殊需求的可以自己查看数据手册。

为了快速开发,这里使用CubeIDE配置好基本代码框架,配置和NRF24L01通信要求一样就可以了,比如8位数据MSB(高位在前),分频值256,时钟极性(CPOL)为低,采样边沿(CPHA)为第一边沿。 

 三、对于RT-Thread Studio对工程配置

然后将刚才配置CubeIDE有关SPI的相应的代码复制到RT-Thread工程board.c文件,这一点,你根据board.h的注释进行配置即可,这里就不讲解了,比如我复制代码里的部分截图如下。

 四、有关NRF24L01的代码移植

这里我使用的还是原子个的例程,当然得注意他的代码是SPI的初始化和NRF24L01的初始化时分开的,而且得考虑SPI引脚是否与其他器件如W25Qxx连接着。当然也可以将原子哥有关SPI和NRF24L01配置的文件合并,让将那个合并的文件复制待RT-Thread工程中,当然还得配置相关的小细节如SPI结构体句柄宏定义重定向等等,这点你慢慢体会,移植成功后,你就可以实现短距离无线通信了,还有重要的一点,你移植成功的这套代码可以适配淘宝卖的各种同类型但距离更远的NRF24L01模块。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44826637/article/details/119787106

智能推荐

(自用随笔)PAT A1021(25分)_Freedomer_的博客-程序员宝宝

暴力搜索,测试点3用了1200ms。。。。尴尬。测试点2比较坑,连通分支数大于2,而我一开始的代码是,一旦连通分支大于1则跳出。。。暴力思路:先把节点1作为根,用一次图的遍历模板,将连通分支数算出来,若大于1则输出Error;若等于1,则把剩下的节点分别作为根,遍历,算出各自的最大深度,最后输出最大深度的节点。优化的思路请参考其他博客~#include <iostream&...

数据库服务器 数据库管理系统 表_weixin_38887666的博客-程序员宝宝

数据库服务器:运行在局域网中的一台或多台计算机和数据库管理系统软件共同构成了数据库服务器,为客户应用提供服务,这些服务是查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。服务器可以移植到功能更强的计算机上,不涉及处理数据的重新分布问题。所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应...

各种设计模式_josion666的博客-程序员宝宝

各种模式观察者设计模式设计模式是最精髓的东西,是软件思想的体现,是软件的灵魂。如三大框架SSM只所以傲视群雄,它的傲娇,它的底气就来自对经典设计模式的全面应用。所以如果只会应用不懂其义,那你只是个码农;如何能领会设计模式的奥义,你就有了高级程序员的潜力;如果你能自己仿写,你就有了架构师的入门证。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个目标对象,当这个目标对象的状态发生变化时,会通知所有观察者对象,使它们能够自动更新。如:vue中的watch侦听器...

nginx负载均衡简单配置_weixin_30807677的博客-程序员宝宝

nginx负载均衡简单配置准备三台虚拟机来做这个实验:172.16.160.99 web服务器172.16.160.103 web服务器172.16.160.98 负载均衡服务器首先三台电脑预装nginx软件:1、yum安装nginxyum install nginx 3、启动nginxchkconfig nginx on s...

Spring Tools 4 STS没有创建Dynamic Web Project的选项 以及 Spring Tools 4 STS New 菜单没有Spring Bean Configuration..._bangka6579的博客-程序员宝宝

Spring Tools 4 STS没有创建Dynamic Web Project的选项STS4默认不带Dynamic Web Project插件。解决方法:1、打开:Help 选择 Install New Software 2、Work with下拉选择 - All Available Sites3、name(最后一个):勾选Web, XML, Java EE an...

Scrollview和listview滑动冲突_九月十九的博客-程序员宝宝_listview和scrollview滑动冲突

当Scrollview嵌套listview的时候,listview的高度就不能自适应,而是要自定义一个固定的高度,否则listview无法复用item,高度就会只有一个item的高度。此其一,其二也是本文的重点,解决滑动冲突。网上的资料一大堆,就不在此累赘。思路是:当listview处于底部的时候,判断Scrollview是否滑动到底部,如果滑动到底部,则可以滑动listview,如果没滑到底...

随便推点

Caffe框架的使用_zhouhoujia的博客-程序员宝宝

1. 首先准备训练和测试数据 400张训练数据,100张测试数据。分类标签文件使用脚本[[email protected] ~]# cat create_filelist.sh #!/usr/bin/env shDATA=/root/reMY=/rootecho "Create train.txt..."rm -rf $MY/train.txtfor i in 3 4 5 6...

懒惰的程序员_lucky__baby的博客-程序员宝宝_懒惰的程序员

可能除了哲学家以外,我认为程 序员是最懒的一群人。他们的职业看起来又似乎有一定的劳动强度。想想看,生物学家要亲自做所有的实验...给数百只小白鼠注射药物不可能自动完成。医生必须给病人进行身体检查;教授每年都要教授同样的课程;建筑师从各个角度制定方案,并手工地将方案一笔一划绘制出来。  让我们再来看看更为辛苦的一些职业,情况更糟。营销人员要不断重复地进行同样的产品宣传;理发师日复一日地做着同样的

数据集文件处理-重命名文件_littlePrince26的博客-程序员宝宝

(1)很多数据集合的照片是取自视频流,名称相对十分不规律,类似如下62fd8bf4d53a1b94fbac16738406f10b.jpg 1 0bdec5cccbcade6b6e94087cb5509d98.jpg 1。为了方便管理与处理,要对几万张图片重命名。图片全保存在一个文件夹里面,而另外的label标签种类数据全在一个txt文本文件里面(如图)。      (...

安装和使用Clouda_23萝卜的博客-程序员宝宝

(1)安装Clouda:打开CMD,用cmd进入node.js安装的根目录。                   (我的node.js的根目录是:) 然后输入如下指令:回车,完成Clouda的安装。  (2)使用Clouda创建工程:同样是打开CMD,用cmd进入node.js安装的根目录。然后输入如下指令:完成名就myproject这个工程的创

挖填方体积GlobalMapper计算步骤_浮生若梦13的博客-程序员宝宝_globalmapper土方计算

GlobalMapper下载地址: https://mp.weixin.qq.com/s/MNytTgzGi4o3HgnpQ3sHHQ特别说明:图例中未标注的,均按默认处理,不改变参数和条件打开GlobalMapper软件,点击Open Data Files 或者 文件 —打开数据文件。选择要打开的 .tif高程文件或者 .asc 3D数据文件,分别设置导入条件。(本文以.asc文件进行计算).tif文件直接打开.asc文件设置导入条件选择要计算的围场区域,点击‘区

Shell_查找命令行历史记录_North北的博客-程序员宝宝_xshell查看历史命令

方法1.↑↓键:↑,向前查找(更早输入的命令);↓,向后查找(更新输入的命令); 方法2.history命令:显示近期输入的1000条命令,这些命令,存储在~/.bash_history文件中;如果想要改变这个值的大小,直接为环境变量HISTSIZE赋值,如:HISTSIZE=2000; 方法3.ctrl+r搜索:在提示符后面,输入,要搜索的关键字:(rev...