OpenEdv-开源电子网

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

求助!STM32关于nRF24L01令人发指的丢包问题!

[复制链接]

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2015-7-2
在线时间
2 小时
发表于 2016-4-25 18:46:58 | 显示全部楼层 |阅读模式
1金钱
我有两套最小系统板 和一堆NRF24L01+的模块
我准备组成主从控制机器
然后我用NRF24L01模块去发送和接受数据的时候
发现接受的时候总会固定的出现读取数据错的时候,然后把数据给错过了

我直接上逻辑分析仪的图
无标题.png

求大神帮帮忙 = =

最佳答案

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

数据丢失 一般是以下2个问题 1.收发不同步带来的丢失,比如发的太快了,数据量太多了,接收不过来了 2.就是本身24L01距离近 ,距离远了就容易丢包
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

110

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2013-9-16
在线时间
0 小时
发表于 2016-4-25 18:46:59 | 显示全部楼层
数据丢失 一般是以下2个问题
1.收发不同步带来的丢失,比如发的太快了,数据量太多了,接收不过来了

2.就是本身24L01距离近 ,距离远了就容易丢包
RFinchina 团队欢迎无线方面的技术交流 QQ 474882985
回复

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2015-7-2
在线时间
2 小时
 楼主| 发表于 2016-4-25 18:51:51 | 显示全部楼层
发送部分我感觉应该没啥事
我就把接收的函数部分的代码传上来

[mw_shl_code=c,true]u8 NRF_Rx_Dat(u8 *rxbuf)
{
        u8 state;
        int i;
        //à-¸ßòy½Åê1Äü·¢ËíÄ£ê½
        CE_High();
        state=SPI_NRF_ReadReg(STATUS);
  SPI_NRF_WriteReg(NRF_WRITE_REG+STATUS,state);
        if(state&RX_OK)
        {       
                GPIO_SetBits(GPIOD,GPIO_Pin_0);
               
                SPI_NRF_ReadBuf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);
                SPI_NRF_WriteReg(FLUSH_RX,0xFF);
               
                GPIO_ResetBits(GPIOD,GPIO_Pin_0);               
               
                return SUCCESS;
        }
        else
        {
                        GPIO_SetBits(GPIOD,GPIO_Pin_0);
                        GPIO_ResetBits(GPIOD,GPIO_Pin_0);
                return ERROR;
        }[/mw_shl_code]

以及接收的部分配置(发送部分的参数和他一样 稍微变化)
[mw_shl_code=c,true]void NRF_RX_Mode(void)
{
        int i;
        CE_Low();
        SPI_NRF_WriteBuf(NRF_WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);
        SPI_NRF_WriteBuf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);
        SPI_NRF_WriteReg(NRF_WRITE_REG+EN_AA,0x01);
        SPI_NRF_WriteReg(NRF_WRITE_REG+EN_RXADDR,0x01);
        SPI_NRF_WriteReg(NRF_WRITE_REG+RF_CH,40);
        SPI_NRF_WriteReg(NRF_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);
        SPI_NRF_WriteReg(NRF_WRITE_REG+RF_SETUP,0x24);
        SPI_NRF_WriteReg(NRF_WRITE_REG+CONFIG, 0x0f);       
        CE_High();
}[/mw_shl_code]
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2016-4-25 21:28:07 | 显示全部楼层
帮顶
回复

使用道具 举报

3

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2019-11-6
在线时间
74 小时
发表于 2020-7-9 15:34:38 | 显示全部楼层
你这是用软件看的波形吗,什么软件啊
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-10 03:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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