搜索
bottom↓
回复: 0

莫名奇妙的错误请教各位,看看是什么问题

[复制链接]

出0入0汤圆

发表于 2012-11-7 16:42:39 | 显示全部楼层 |阅读模式
本帖最后由 lixiangnew 于 2012-11-8 08:03 编辑

我在用nrf241u1p设计usb部分时,遇到莫名其妙的问题
1:我的硬件上面是nrf24lu1p外挂at45db041,由于引脚有限,串口和flash不能共同使用,我在删除串口程序文件的时候,usb系统就不识别了,添加串口文件后,不调用任何函数,usb就可以识别。而我在公司另外一台电脑上面也出现同样的问题,我又换到公司一个同事的笔记本上,让他帮我调试,结果他删除了串口文件,usb居然能识别。本来应该没有影响的,但是出现这个问题搞的一头雾水,没有搞明白是怎么回事,我这边删除串口就不识别usb,不删除就100%的能识别usb,串口文件现在还保留在程序里面。
2:在for循环里面我将收到的8个字节赋值给数组,结果赋值没有成功,读出来的数据不对,我一个一个赋值就可以

void main(){
//  uint16_t j,t;                                                                                       
  unsigned char databuf[32];
  flash_init();
  usb_init();        // Initialize USB
  EA=1;  // Enable global IRQ

  P00=0;
  databuf[0]=1;
  databuf[1]=2;
  databuf[2]=3;
  bufferwrite(1,1,databuf,2);
  delay_ms(10);
  buffertopage(1,1);
  databuf[0]=0;
  databuf[1]=0;
  databuf[2]=0;
  pagetobuffer(1,1);
  bufferread(1,1,databuf,2);

  if(databuf[0]==1){
          P00=1;
  }else{
          P00=0;

}
  if(databuf[1]==2){
          P01=1;
  }else{
          P01=0;
}

程序到这里运行完全正常,上电写flash正确,读出也正确,两个led都亮
  while(1){
          if(Ep1OutIsBusy==1){                        这里就有莫名奇妙的问题,这个是usb接收数据中断,接收到8个字节数据,我用led点亮测试,是正确的,但是在下面的赋值语句却不对
//                for(j=0;j<8;j++){
//                          pRecData[j]= map->out1buf[j];  这条语句感觉就是没有执行,读出来的数据不一致
//
//                }
                pRecData[0]= map->out1buf[0];   但是用这样赋值就可以,读出来数据一致
                if(pRecData[0]==1){
                          P00=1;
                  }else{
                          P00=0;
                  }

                  bufferwrite(1,1,pRecData,2);    写flash的buf也不行,读出来的值不是不对
                //  buffertopage(1,1);
                //  pagetobuffer(1,1);
                  bufferread(1,1,databuf,2);

                  if(databuf[0]==1){
                          P01=1;
                  }else{
                          P01=0;
                  }
                Ep1OutIsBusy=0;
          }
//          if(Ep1InIsBusy==0){
//                        SendReport();
//                  }
          }
}


flash的代码是同事给我的,我直接移植下添加到程序里面,就老出现错误,函数重命名什么的,但是明明没有重命名,后来我一个代码一个代码敲进去,居然好了,编译通过,各个功能都正常,我问同事是怎么回事,他说之前他也遇到过这样的问题,可能是编译器哪里兼容性问题,是在搞不懂,我想不应该有这样的问题的,是不是我哪里设置的问题,不知道坛子里有没有哪位大侠遇到相似的问题的,请指导下,先谢谢了。



本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 15:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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