智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: My_EE~
打印 上一主题 下一主题

[华南赛区] nrf24l01模块可以在不同单片机之间传输的么?

  [复制链接]

8

主题

356

帖子

0

精华

常驻嘉宾

激情晋豹,快乐奔跑!

Rank: 8Rank: 8

积分
4108

特殊贡献奖章论坛骨干奖章论坛元老奖章技术大牛奖章

QQ
威望
2156
贡献
1454
兑换币
444
注册时间
2010-9-2
在线时间
249 小时
21#
发表于 2014-8-2 17:33:24 | 只看该作者
My_EE~ 发表于 2014-8-2 11:07
嗯,现在问题就是速度慢,有解决方法么?

确保通信环境畅通的情况下依然慢,那基本无解了,你的协议速率已经定死了,串口,速度还是比较慢的。不过就算速度慢,你也可以考虑优化编码,把数据压缩一下传输,去掉没有意义的字节。
回复 支持 反对

使用道具 举报

19

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
715
QQ
威望
395
贡献
200
兑换币
220
注册时间
2014-2-20
在线时间
60 小时
毕业学校
湖北工程学院
22#
 楼主| 发表于 2014-8-2 17:37:33 | 只看该作者
晋豹奔跑 发表于 2014-8-2 17:33
确保通信环境畅通的情况下依然慢,那基本无解了,你的协议速率已经定死了,串口,速度还是比较慢的。不过 ...

嗯,我也在打算对编码优化,数据处理那一块,估计这么模块不适合多数据传送。
回复 支持 反对

使用道具 举报

8

主题

356

帖子

0

精华

常驻嘉宾

激情晋豹,快乐奔跑!

Rank: 8Rank: 8

积分
4108

特殊贡献奖章论坛骨干奖章论坛元老奖章技术大牛奖章

QQ
威望
2156
贡献
1454
兑换币
444
注册时间
2010-9-2
在线时间
249 小时
23#
发表于 2014-8-2 17:42:43 | 只看该作者
My_EE~ 发表于 2014-8-2 17:37
嗯,我也在打算对编码优化,数据处理那一块,估计这么模块不适合多数据传送。

数据量大的话用sd卡吧
回复 支持 反对

使用道具 举报

19

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
715
QQ
威望
395
贡献
200
兑换币
220
注册时间
2014-2-20
在线时间
60 小时
毕业学校
湖北工程学院
24#
 楼主| 发表于 2014-8-2 17:49:42 | 只看该作者
晋豹奔跑 发表于 2014-8-2 17:42
数据量大的话用sd卡吧

SD卡只在TFT彩屏51时弄过,先把这个弄好,核心就是无线数据传输,刚才把小数位处理屏蔽,速度果然起来了  /*switch        (L_adc_display[0]&0x0f)               //小数位        {
                  case 0x0f_adc_display[0]=9+48;break;
                  case 0x0e:L_adc_display[0]=9+48;break;
                  case 0x0d:L_adc_display[0]=8+48;break;
                  case 0x0c:L_adc_display[0]=8+48;break;
                  case 0x0b:L_adc_display[0]=7+48;break;
                  case 0x0a:L_adc_display[0]=6+48;break;
                  case 0x09:L_adc_display[0]=6+48;break;
                  case 0x08:L_adc_display[0]=5+48;break;
                  case 0x07:L_adc_display[0]=4+48;break;
                  case 0x06:L_adc_display[0]=4+48;break;
                  case 0x05:L_adc_display[0]=3+48;break;
                  case 0x04:L_adc_display[0]=3+48;break;
                  case 0x03:L_adc_display[0]=2+48;break;
                  case 0x02:L_adc_display[0]=1+48;break;
                  case 0x01:L_adc_display[0]=1+48;break;
                  case 0x00:L_adc_display[0]=1+48;break;
                  default:break;
        }*/   
回复 支持 反对

使用道具 举报

8

主题

356

帖子

0

精华

常驻嘉宾

激情晋豹,快乐奔跑!

Rank: 8Rank: 8

积分
4108

特殊贡献奖章论坛骨干奖章论坛元老奖章技术大牛奖章

QQ
威望
2156
贡献
1454
兑换币
444
注册时间
2010-9-2
在线时间
249 小时
25#
发表于 2014-8-2 17:52:41 | 只看该作者
你这段是发送端?
回复 支持 反对

使用道具 举报

19

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
715
QQ
威望
395
贡献
200
兑换币
220
注册时间
2014-2-20
在线时间
60 小时
毕业学校
湖北工程学院
26#
 楼主| 发表于 2014-8-2 17:59:00 | 只看该作者
晋豹奔跑 发表于 2014-8-2 17:52
你这段是发送端?

是的
回复 支持 反对

使用道具 举报

8

主题

356

帖子

0

精华

常驻嘉宾

激情晋豹,快乐奔跑!

Rank: 8Rank: 8

积分
4108

特殊贡献奖章论坛骨干奖章论坛元老奖章技术大牛奖章

QQ
威望
2156
贡献
1454
兑换币
444
注册时间
2010-9-2
在线时间
249 小时
27#
发表于 2014-8-2 18:01:51 | 只看该作者
My_EE~ 发表于 2014-8-2 17:59
是的

编码过程为什么不放在接收端?
回复 支持 反对

使用道具 举报

19

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
715
QQ
威望
395
贡献
200
兑换币
220
注册时间
2014-2-20
在线时间
60 小时
毕业学校
湖北工程学院
28#
 楼主| 发表于 2014-8-2 18:02:22 | 只看该作者
晋豹奔跑 发表于 2014-8-2 17:52
你这段是发送端?

main函数这样数据发送,有问题么?

//=========================主函数=============================================
void main()
{     
      unsigned char i=0;
      WDTCTL = WDTPW + WDTHOLD; //禁止看门狗

      LED_IO_set();
      RF24L01_IO_set();
      DS18B20_IO_set();

      InitSys();           //系统时钟初始化设置
      init_NRF24L01() ;    //NRF24L01无线模块初始化
      ADC_init();          //ADC12初始化
      //InitUART();          //串口初始化

      ds18b20_reset();
      ds18b20_write(0xcc);
      ds18b20_write(0x44);
       ms_delay();  //延时约36ms
       ms_delay();
       ms_delay();
       ms_delay();
       ms_delay();
       ms_delay();
       ms_delay();
      LED1_1;
      while(1)
      {
        if(i==12)
        {
                i=0;
                Ds18b20Convert(); //采集温度
                work_temp();       //温度处理                    
                ms_delay();


                dispaly[4]=H_adc_display[2];
                dispaly[5]=H_adc_display[1];
                dispaly[6]=H_adc_display[0];

                dispaly[7]=L_adc_display[2];
                dispaly[8]=L_adc_display[1];
                dispaly[9]=L_adc_display[0];                        

                dispaly[10]=G_adc_display[2];
                dispaly[11]=G_adc_display[1];
                dispaly[12]=G_adc_display[0];
        }
        i++;



       lignt();
       nRF24L01_TxPacket(dispaly);  //把采集好的温度数据发送出去         
       SPI_RW_Reg(WRITE_REG+STATUS,0XFF);   //清状态寄存器


      /*sprintf(s, "%d%d.%d",dispaly[4],dispaly[5],dispaly[6]  );
      PutString(s);

       Send1Char(' ');    //123校验位 (通用) 自己写上位机用
       Send1Char('1');   
       Send1Char('2');        
       Send1Char('3');
       Send1Char(' ');*/


      }
}


回复 支持 反对

使用道具 举报

19

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
715
QQ
威望
395
贡献
200
兑换币
220
注册时间
2014-2-20
在线时间
60 小时
毕业学校
湖北工程学院
29#
 楼主| 发表于 2014-8-2 18:04:31 | 只看该作者
晋豹奔跑 发表于 2014-8-2 18:01
编码过程为什么不放在接收端?

是说直接AD采集了数据,然后发送,给51数据处理么
回复 支持 反对

使用道具 举报

8

主题

356

帖子

0

精华

常驻嘉宾

激情晋豹,快乐奔跑!

Rank: 8Rank: 8

积分
4108

特殊贡献奖章论坛骨干奖章论坛元老奖章技术大牛奖章

QQ
威望
2156
贡献
1454
兑换币
444
注册时间
2010-9-2
在线时间
249 小时
30#
发表于 2014-8-2 18:08:40 | 只看该作者
My_EE~ 发表于 2014-8-2 18:04
是说直接AD采集了数据,然后发送,给51数据处理么

是啊,总之平衡收发负担就好了。另外,程序我真心不想看,一看代码就恶心,我要好好享受假期…请原谅啊
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-23 02:30 , Processed in 0.044358 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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