lixiangnew 发表于 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;
flash_init();
usb_init();        // Initialize USB
EA=1;// Enable global IRQ

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

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

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

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


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



页: [1]
查看完整版本: 莫名奇妙的错误请教各位,看看是什么问题