注册 登录
查看: 773|回复: 18

K60控制NRF24L01

[复制链接]
发表于 2014-5-3 16:35:40 | 显示全部楼层 |阅读模式
按山外哥的例程烧写进去,然后单步执行,发现NRF24L01总是发送不成功,一直停在图片中的那个位置!整个源代码我只改动了两个个地方,就是对buff这个数组赋值,因为山外哥给的代码里没有对数组赋值;还有就是源码里面选择调用接受模式设置函数,进入接受模式,我改了,调用发送模式设置函数,用作发射!
一直发送不成功,这是为什么啊。。。求解!!!

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2014-5-3 16:37:32 | 显示全部楼层
无线模块需要接收端才可以正常发送。
另外,我们的NRF程序需要中断,看看有没有进入中断。
你修改了什么内容?我们的无线调试例程,我们自己用着挺稳定的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-3 16:41:38 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-3 16:37
无线模块需要接收端才可以正常发送。
另外,我们的NRF程序需要中断,看看有没有进入中断。
你修改了什么内 ...

是一定要有另外一个模块并设置为接受,用作发射的模块才会正常工作吗???
回复 支持 反对

使用道具 举报

发表于 2014-5-3 16:43:12 | 显示全部楼层
小菜鸟 发表于 2014-5-3 16:41
是一定要有另外一个模块并设置为接受,用作发射的模块才会正常工作吗???

是的,否则会发送失败的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-3 16:54:04 | 显示全部楼层
小菜鸟 发表于 2014-5-3 16:41
是一定要有另外一个模块并设置为接受,用作发射的模块才会正常工作吗???

喔喔。。。终于可以了!!!非常非常非常感谢山哥。。。笑坏我的肚子了笑坏我的肚子了笑坏我的肚子了笑坏我的肚子了   搞了整整四天!!!长舒一口气!!!
回复 支持 反对

使用道具 举报

发表于 2014-5-3 17:10:13 | 显示全部楼层
小菜鸟 发表于 2014-5-3 16:54
喔喔。。。终于可以了!!!非常非常非常感谢山哥。。。笑坏我的肚子了笑坏我的肚子了笑坏我的肚 ...

呵呵,经常也是这样,有个小错误,耗了几天时间。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 20:34:04 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-3 16:37
无线模块需要接收端才可以正常发送。
另外,我们的NRF程序需要中断,看看有没有进入中断。
你修改了什么内 ...

nrf_writereg(NRF_WRITE_REG + SETUP_AW, ADR_WIDTH - 2);          //设置地址长度为 TX_ADR_WIDTH
山哥,这句是代表什么呢?既不是TX节点地址也不是RX节点地址啊!
还有 spi_init(NRF_SPI, NRF_CS, MASTER,9000*1000); 这一句是代表SCK波特率为9MHZ吗?
回复 支持 反对

使用道具 举报

发表于 2014-5-4 20:37:27 | 显示全部楼层
小菜鸟 发表于 2014-5-4 20:34
nrf_writereg(NRF_WRITE_REG + SETUP_AW, ADR_WIDTH - 2);          //设置地址长度为 TX_ADR_WIDTH
山 ...

需要查一下寄存器:SETUP_AW

期待的 波特率为 9MHZ,实际的波特率会通过返回值返回回来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 20:42:40 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-4 20:37
需要查一下寄存器:SETUP_AW

期待的 波特率为 9MHZ,实际的波特率会通过返回值返回回来。

我对比了一下STM32例程上的设置,并没有这一句,这一句是不是可有可无呢?
另外,因为只有一个K60核心板,我就用STM32来控制接受模块,设置为8分频,就是9MHZ;在K60里面把期待波特率置为9MHZ,如果实际返回的不是9MHZ,那岂不是接受和发射的波特率不一致,这样能不能正常运行呢?如果不能,该怎么解决呢?
回复 支持 反对

使用道具 举报

发表于 2014-5-4 20:44:30 | 显示全部楼层
小菜鸟 发表于 2014-5-4 20:42
我对比了一下STM32例程上的设置,并没有这一句,这一句是不是可有可无呢?
另外,因为只有一个K60核心板 ...

太久了的代码,我不可能记住这些寄存器的,可以注释来试试。

SPI波特率 仅仅是 NRF和MCU的通信速率,不影响无线传输。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 20:45:39 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-4 20:44
太久了的代码,我不可能记住这些寄存器的,可以注释来试试。

SPI波特率 仅仅是 NRF和MCU的通信速率,不 ...

嗯嗯。。。我再自己试试!非常感谢山哥!
回复 支持 反对

使用道具 举报

发表于 2014-5-4 20:48:40 | 显示全部楼层
小菜鸟 发表于 2014-5-4 20:34
nrf_writereg(NRF_WRITE_REG + SETUP_AW, ADR_WIDTH - 2);          //设置地址长度为 TX_ADR_WIDTH
山 ...

地址长度,默认是5字节,K60的代码可以宏定义配置。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 20:51:22 | 显示全部楼层
恐发之际 发表于 2014-5-4 20:48
地址长度,默认是5字节,K60的代码可以宏定义配置。

可这既不是发射也不是接受地址啊?发射和接受地址都在后面有设置长度啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 22:37:18 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-4 20:44
太久了的代码,我不可能记住这些寄存器的,可以注释来试试。

SPI波特率 仅仅是 NRF和MCU的通信速率,不 ...

STM32控制接受端,K60控制发送端。现在是这样,先给K60通电,再给STM32通电,这样没问题,可以成功发送接受,可以进入中断!然后关掉STM32电源,把K60复位,再次启动STM32时就不行了!就是两者同时启动可以接受、发送,其他情况不行!这是为什么呢?
回复 支持 反对

使用道具 举报

发表于 2014-6-20 20:58:23 | 显示全部楼层
哥们,,可否把你的K60驱动24L01的代码借我瞧瞧啊,,,我也是调了好久出不来,,实在找不到原因了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-6 13:51:59 | 显示全部楼层
zhang164 发表于 2014-6-20 20:58
哥们,,可否把你的K60驱动24L01的代码借我瞧瞧啊,,,我也是调了好久出不来,,实在找不到原因了

哥们。。。不好意思,之前忙着考试什么的,很久没弄这个了,不知道你调试好没有?我当时遇到问题之后是这样解决的:
1、接受方一定要先准备好,不然发送方是发送不成功的。
2、接受一次就要清空一次接收缓冲区,发送缓冲区不是必须清理的,但是还是清理一下为妙。
3、发送和接收方一次最多发送和接受32字节数据!
如果还是不行,我再把代码给你!
回复 支持 反对

使用道具 举报

发表于 2014-7-6 20:06:53 | 显示全部楼层
小菜鸟 发表于 2014-7-6 13:51
哥们。。。不好意思,之前忙着考试什么的,很久没弄这个了,不知道你调试好没有?我当时遇到问题之后是这 ...

首先多谢你了  我已经搞的差不多了,发送、接收缓冲区都清零了,但是还有个小问题,情况如下:
我们是需要利用24L01发回线性CCD的数据,但是由于数据量有点大,一共128个数据,所以我们分为4次传输,但是我们每传输一次就要至少延时5毫秒才行,,不然数据就会偶尔出错,而且出错的频率是一定的,我们是把发回的数据传上位机看出来的,, 不知道你们遇到过这中情况吗???怎么解决的呢??你们有
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-8 09:56:50 | 显示全部楼层
zhang164 发表于 2014-7-6 20:06
首先多谢你了  我已经搞的差不多了,发送、接收缓冲区都清零了,但是还有个小问题,情况如下:
我们是需 ...

我没有把数据传到上位机了,我是K60控制的NRF发送,然后STM32开发板(有液晶屏)控制NRF接受,然后把赛道信息显示在液晶屏上。你说的那个问题我也遇到类似的,我想可能是这样:发送完第四次之后,未免数据覆盖,要等把数据提取出来并完成对数据的其他操作再清空接收缓冲区,而在清空缓冲区之前是不能发送的,所以这段时间发送端只能等待;你觉得能不能这样解决:在接收端的控制器多设置几个二维数组,这样第一个二维数组接受完128字节就换另一个数组来接收,同时处理之前接收到的数据,这就不会被覆盖。
回复 支持 反对

使用道具 举报

发表于 2014-8-7 10:10:34 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-3 16:37
无线模块需要接收端才可以正常发送。
另外,我们的NRF程序需要中断,看看有没有进入中断。
你修改了什么内 ...

山外哥,有没有K60的SPI底层啊,能不能给我一份,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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