930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STC32G12K128开发板
查看: 22640|回复: 8

51822 2.4G ESB接收端收到后怎么回传给发送端?

[复制链接]

1

主题

3

帖子

39

积分

新手上路

Rank: 1

积分
39
发表于 2018-7-28 15:11:14 | 显示全部楼层 |阅读模式
我是新手,请问一下,51822ESB通讯的时候,接收端接收到信息后怎么回传给发送端表示接收到了?
回复

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
发表于 2018-7-30 08:57:12 | 显示全部楼层
ffoorrggeett 发表于 2018-7-29 15:12
老哥,一个发送端发送数据给两个接收端工作的时候不稳定,是什么原因啊?有什么解决办法?

1个发,两个收不稳定,你要仔细调试代码。另外,也可考虑用双信道,收和发分开在不同的信道。这样会更好一些。
回复 支持 1 反对 0

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
发表于 2018-7-28 16:50:37 | 显示全部楼层
重新配置radiao为发射模式,发送数据。注意逻辑地址要和接收方的地址一样。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2018-7-28 17:08:38 | 显示全部楼层
强光手电 发表于 2018-7-28 16:50
重新配置radiao为发射模式,发送数据。注意逻辑地址要和接收方的地址一样。

怎么联系你。我需要开发方案
回复 支持 反对

使用道具 举报

1

主题

3

帖子

39

积分

新手上路

Rank: 1

积分
39
 楼主| 发表于 2018-7-28 17:16:14 | 显示全部楼层
强光手电 发表于 2018-7-28 16:50
重新配置radiao为发射模式,发送数据。注意逻辑地址要和接收方的地址一样。

这是我在例程的基础上改的,加了一段配置发射的,但是没什么作用啊。

while (true)
    {       




                        ch=get_key();
                        switch(ch)
                        {
                                case 12:  
                                        {
                                               
                                                err_code=nrf_esb_stop_rx();
                                                APP_ERROR_CHECK(err_code);                                               
                                                err_code = esb_init_tx();   
                                                APP_ERROR_CHECK(err_code);
                                                                                                                       
                                                        tx_payload.data[0]=1;
                                                        if (
                                                                        nrf_esb_write_payload(&tx_payload)
                                                                        == NRF_SUCCESS)
                                                                {               
                                                                       
                                                                        nrf_gpio_pin_clear(RGBLED_R);      
                                                                        nrf_delay_ms(50);
                                                                        nrf_gpio_pin_set(RGBLED_R);
                                                                }
                                               

                                               
                                                                err_code = esb_init_rx();   
                                                                APP_ERROR_CHECK(err_code);
                                                                err_code = nrf_esb_start_rx();
                                                                APP_ERROR_CHECK(err_code);
                                               
                                       
                                        }
回复 支持 反对

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
发表于 2018-7-29 13:53:16 | 显示全部楼层
有两种方法可以实现:
1:使用ESB的自动应答功能。发射方A发射后,接收方B接收到A的信息后,会硬件立即返回应答信息,A接收到B的应答信息后,会产生中断指示发送成功。这表示发射的信息被B正确接收。
2:不使用自动应答功能。A和B初始化后均进入接收模式,A发射数据时配置为发射模式发射完成后,立即返回接收模式。B接收到A的信息后立即处理并进入发射模式返回确认信息(自定义的确认信

息),发射完成后,立即返回接收模式。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

39

积分

新手上路

Rank: 1

积分
39
 楼主| 发表于 2018-7-29 15:12:35 | 显示全部楼层
强光手电 发表于 2018-7-29 13:53
有两种方法可以实现:
1:使用ESB的自动应答功能。发射方A发射后,接收方B接收到A的信息后,会硬件立即返 ...

老哥,一个发送端发送数据给两个接收端工作的时候不稳定,是什么原因啊?有什么解决办法?
回复 支持 反对

使用道具 举报

5

主题

14

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2018-8-30 23:11:12 | 显示全部楼层
强光手电 发表于 2018-7-30 08:57
1个发,两个收不稳定,你要仔细调试代码。另外,也可考虑用双信道,收和发分开在不同的信道。这样会更好 ...

1个发,两个收的时候问,考虑使用双通道的话,各个通道的地址都是怎么对应配置的?  跟 24LE1使用双通道时各个通道的地址配置区别大不大?
回复 支持 反对

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
发表于 2018-8-31 20:24:49 | 显示全部楼层
机灵的兔子 发表于 2018-8-30 23:11
1个发,两个收的时候问,考虑使用双通道的话,各个通道的地址都是怎么对应配置的?  跟 24LE1使用双通道 ...

同一个通道接收和发送逻辑地址必须一样。
地址和E1的是一样的,只不过操作的地址寄存器不一样。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|官方淘宝店|930电子网 ( 皖ICP备16000695号-2 )

GMT+8, 2024-11-22 06:15 , Processed in 0.074200 second(s), 23 queries .

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