注册 登录
查看: 1044|回复: 26

山外nRF24L01例程

[复制链接]
发表于 2014-3-31 13:12:16 | 显示全部楼层 |阅读模式
想问下山外nRF24L01接收例程中是不是一次最大只能接收32个字节呢?如果是的话发送函数定义时的原型:
uint32  nrf_rx(uint8 *rxbuf, uint32 len);
上面的原型中len为什么要uint32的类型呢?如果不是我发送一个36字节的字符串确是分两次打印的:

发送的数据是“一一一一一一一一一一一一一一十六”+“i”,其中“十六”前面的是汉字“一”,“i”是uint32型的变量,每发送一次+1,用于判断是否丢包。下面是发送过程:
sprintf( (char *)buff, "%s%d", str,i );         //把str和i合并成一个字符串到buff里,再进行发送
nrf_tx( buff, 36 );

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-1-29 12:13:09 | 显示全部楼层
我现在是 直接烧写的例程  然后PC端死活收不到 地址都是改了 的
回复 支持 1 反对 0

使用道具 举报

发表于 2014-3-31 13:14:02 | 显示全部楼层
NRF模块一次最多能发送32个数据,不过我们可以写个上层代码来分开多次发送。
而下面这个函数就是山外哥提供好的上层代码:
uint32  nrf_rx(uint8 *rxbuf, uint32 len);  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-31 13:41:36 | 显示全部楼层
栾端静 发表于 2014-3-31 13:14
NRF模块一次最多能发送32个数据,不过我们可以写个上层代码来分开多次发送。
而下面这个函数就是山外哥提供好 ...

我感觉发送是没问题的,就是接收那边,一次性接收32个字节后怎么就直接跳出nrf_rx()函数了呢?
回复 支持 反对

使用道具 举报

发表于 2014-3-31 17:00:33 | 显示全部楼层
菜鸟 发表于 2014-3-31 13:41
我感觉发送是没问题的,就是接收那边,一次性接收32个字节后怎么就直接跳出nrf_rx()函数了呢?

既然发送是 32个字节,那么接收也自然是 32字节为一组来接收。

你调用 nrf_rx,他会查询缓存,如果接收到一个包,那就返回32个字节给你啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-31 19:16:59 | 显示全部楼层
栾端静 发表于 2014-3-31 17:00
既然发送是 32个字节,那么接收也自然是 32字节为一组来接收。

你调用 nrf_rx,他会查询缓存,如果接收 ...

我一次性发送了128个字节
回复 支持 反对

使用道具 举报

发表于 2014-3-31 20:17:16 | 显示全部楼层
菜鸟 发表于 2014-3-31 19:16
我一次性发送了128个字节

我们的代码,你一次发送 128字节,底层都是分开多次发送的。接收的时候,也是一个个包来接收
回复 支持 反对

使用道具 举报

发表于 2014-6-19 18:29:46 | 显示全部楼层
你好,,我拿着山外大哥的24L01的例程移植到我的KL26中(型号和山外哥的有一些差别),但是怎么就是初始化不成功呢??引脚IO口也改了,请问你一下:我需要注意哪些问题啊???
回复 支持 反对

使用道具 举报

发表于 2014-6-19 18:32:03 | 显示全部楼层
zhang164 发表于 2014-6-19 18:29
你好,,我拿着山外大哥的24L01的例程移植到我的KL26中(型号和山外哥的有一些差别),但是怎么就是初始化不 ...

我们的KL26本来就已经写好NRF24L01+的驱动
回复 支持 反对

使用道具 举报

发表于 2014-6-19 19:14:40 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-19 18:32
我们的KL26本来就已经写好NRF24L01+的驱动

恩 我知道,,但是我自己画的板子KL26是128KB的,,你们是256,,所以不能完全移植,,当我改了相对应的SPI和片选、使能、中断IO端口后,,初始化还是不能通过啊,一直卡在那里,,不知道是什么原因,,我的板子用了段时间  还没有发现问题。。。能否指点一二,,先谢谢你了
回复 支持 反对

使用道具 举报

发表于 2014-6-19 19:20:34 | 显示全部楼层
zhang164 发表于 2014-6-19 19:14
恩 我知道,,但是我自己画的板子KL26是128KB的,,你们是256,,所以不能完全移植,,当我改了相对应的S ...

那应该修改芯片型号,还有icf配置文件,代码基本相同的,应该可以直接用的啊
回复 支持 反对

使用道具 举报

发表于 2014-6-19 19:43:04 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-19 19:20
那应该修改芯片型号,还有icf配置文件,代码基本相同的,应该可以直接用的啊

恩  是的,,芯片型号选择了,,不然代码都下载不进去的,,你说的icf文件时哪一个啊??我改的是FIRE_PORT_cfg.h文件中的引脚定义,,和FIRE_NRF24L0.h中的引脚定义。。如下:
FIRE_PORT_cfg.h
#define SPI1_SCK_PIN    PTD5        // PTB9、PTB11、PTD5、PTE2
#define SPI1_SOUT_PIN   PTD6        // PTB16、PTB17、PTD6、PTD7、PTE1、PTE3
#define SPI1_SIN_PIN    PTD7        // PTB16、PTB17、PTD6、PTD7、PTE1、PTE3、PTE0

#define SPI1_PCS0_PIN   PTD4        // PTB8、PTB10、PTE4

FIRE_NRF24L0.h
//以下是硬件配置
#define NRF_SPI         SPI1
#define NRF_CS          PTD4          //SPI_PCS0

#define NRF_CE_PTXn     PTD2          //PTE5
#define NRF_IRQ_PTXn    PTD3          //PTC18


实在是不知道哪儿有错,或者哪里需要改了,,,非常感谢你的耐心解答啊  ,,呵呵
回复 支持 反对

使用道具 举报

发表于 2014-6-19 20:23:22 | 显示全部楼层
zhang164 发表于 2014-6-19 19:43
恩  是的,,芯片型号选择了,,不然代码都下载不进去的,,你说的icf文件时哪一个啊??我改的是FIRE_PO ...

SPI的 片选管脚,我们直接IO模拟,而没有用模块自带的。

你按照我们的硬件链接方式,看看可不可行吧,不要修改复用配置
回复 支持 反对

使用道具 举报

发表于 2014-6-19 21:09:11 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-19 20:23
SPI的 片选管脚,我们直接IO模拟,而没有用模块自带的。

你按照我们的硬件链接方式,看看可不可行吧, ...

我表示没有买你们的板子,,不好意思了。。。多谢了
回复 支持 反对

使用道具 举报

发表于 2014-6-19 21:09:30 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-19 20:23
SPI的 片选管脚,我们直接IO模拟,而没有用模块自带的。

你按照我们的硬件链接方式,看看可不可行吧, ...

我表示没有买你们的板子,,不好意思了。。。多谢了
回复 支持 反对

使用道具 举报

发表于 2014-6-19 23:25:03 | 显示全部楼层
zhang164 发表于 2014-6-19 21:09
我表示没有买你们的板子,,不好意思了。。。多谢了

可以按照我们的接线方式,先接线测试一下,验证例程可不可行的啊
回复 支持 反对

使用道具 举报

发表于 2014-6-20 10:32:44 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-19 23:25
可以按照我们的接线方式,先接线测试一下,验证例程可不可行的啊

对啊,,也是的  呵呵多谢啦,,我试试去,,非常感谢  呵呵
回复 支持 反对

使用道具 举报

发表于 2015-1-9 11:06:46 | 显示全部楼层
本帖最后由 qqjjss 于 2015-1-9 11:08 编辑

我的初始化成功,连接也成功,就是下载失败

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-1-10 16:36:51 | 显示全部楼层
为什么我的把程序下进去,发送与接收都不行啊
回复 支持 反对

使用道具 举报

发表于 2015-1-10 16:38:45 | 显示全部楼层
Zhangweng 发表于 2015-1-10 16:36
为什么我的把程序下进去,发送与接收都不行啊

你是用我们的开发板吗?
回复 支持 反对

使用道具 举报

发表于 2015-1-13 16:04:32 | 显示全部楼层
不是,用的是自己焊的K60主控,加一对NRF24L01
回复 支持 反对

使用道具 举报

发表于 2015-1-17 17:30:23 | 显示全部楼层
qqjjss 发表于 2015-1-9 11:06
我的初始化成功,连接也成功,就是下载失败

我的也是连接成功!发送失败!按下接受端单片机的复位键就成功收到3个!不知你解决了没?
回复 支持 反对

使用道具 举报

发表于 2015-1-17 17:41:50 | 显示全部楼层
268145 发表于 2015-1-17 17:30
我的也是连接成功!发送失败!按下接受端单片机的复位键就成功收到3个!不知你解决了没?

先执行接收端的,再执行发送端的。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-18 10:48:19 | 显示全部楼层
连接和发送要同时进行
回复 支持 反对

使用道具 举报

发表于 2015-1-18 10:49:24 | 显示全部楼层
我的是,接收端引脚接错了,后来好了
回复 支持 反对

使用道具 举报

发表于 2015-1-22 02:34:00 | 显示全部楼层
例程的nrf24l01的发送与接收测试没问题,但是我想加入自己想发送的东西,比如陀螺仪的读取的参数,但是发送一直显示等待发送,请问这个是为什么呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-1-22 10:42:50 | 显示全部楼层
dear_cloud 发表于 2015-1-22 02:34
例程的nrf24l01的发送与接收测试没问题,但是我想加入自己想发送的东西,比如陀螺仪的读取的参数,但是发送 ...

参考无线调试的例程。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

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

本版积分规则

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