OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3467|回复: 3

NRF24L01单方向发送,接收和发送需要同步吗?

[复制链接]

19

主题

80

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1184
金钱
1184
注册时间
2016-7-23
在线时间
179 小时
发表于 2017-11-21 12:44:22 | 显示全部楼层 |阅读模式
1金钱
先说明一下情况:(单方向发送,有自动应答,自动重发)情况1:接收端在while(1)里面一直判断接收,然后显示接收的数组到LCD屏。。。发送端在while(1)里面一直发送数据(数据在变),这个时候可以通讯成功,也可以很好的显示:。情况2:但是我的想法是,发送端每隔50ms发送一次,所以就在发送端发送完一次数据之后延时50ms,这个时候LCD屏就会显示不正常了,所有数值都变成一样的,而且还在不停的闪烁,像是接收到正确数据然后被覆盖了,由于错误的数据持续时间太长,正确的数据时间太短,所以数据显示时会一直闪烁。想了很久还是想不清楚这个问题。
情况3:出现这个问题之后,我就在接收端接收了一次数据显示完之后,也加了50ms的延时,然后就成功了。


总的来说有这么几个问题:
1、单方向的发送也需要接收和发送同步吗?就是发送和接收的时间差不能相差太久。


2、按理说发送端第一次发送成功,接收端接收成功,然后接收端就会显示第一次发送的内容,等第二次发送过来,就可以再一次接收了。就算通信失败了,也就是什么都不显示呀,,,怎么也想不出为什么会出现情况2这种情况。

接收端程序

接收端程序

发送端程序

发送端程序

最佳答案

查看完整内容[请看2#楼]

终于找出问题所在了,一直以为底层驱动没有问题,现在才发现,接收端的驱动之前被我改过,导致接收完成的标志位没有被清除,所以接收端就会判断一直处于在接收的状态,然而显示接收缓存中的随机值。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

80

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1184
金钱
1184
注册时间
2016-7-23
在线时间
179 小时
 楼主| 发表于 2017-11-21 12:44:23 | 显示全部楼层
终于找出问题所在了,一直以为底层驱动没有问题,现在才发现,接收端的驱动之前被我改过,导致接收完成的标志位没有被清除,所以接收端就会判断一直处于在接收的状态,然而显示接收缓存中的随机值。
回复

使用道具 举报

19

主题

80

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1184
金钱
1184
注册时间
2016-7-23
在线时间
179 小时
 楼主| 发表于 2017-11-21 12:48:09 | 显示全部楼层
底层驱动用的是原子mini版的NRF例程
回复

使用道具 举报

19

主题

80

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1184
金钱
1184
注册时间
2016-7-23
在线时间
179 小时
 楼主| 发表于 2017-11-21 15:24:04 | 显示全部楼层
我在想有没有可能是因为公频干扰的问题,刚才我用串口测试了一下两边的数据,发送的数据一直是没有问题的,在接受端用串口打印出来,在两次接收正确数据的中间,有5次错误的数据。求大佬指教指教,小弟我真的快要调崩溃了!!!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 03:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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