求助,AD7656并行读取数据完全不对,跳动

2020-01-16 18:27发布

本帖最后由 dengfeng5357 于 2017-1-16 10:28 编辑

各位前辈和大师们好,我用AD7656并行方式,现在读取回来的值,很乱,跳的厉害,而且分辨不出哪个通道,若有相关代码参考最好,谢谢各位了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
banye2010
1楼-- · 2020-01-16 21:32
串行SPI的啊
banye2010
2楼-- · 2020-01-17 02:49
 精彩回答 2  元偷偷看……
lixin91985
3楼-- · 2020-01-17 04:52
这个项目 貌似以前做过 。
  for(times=0;times<F6Times;times++)//连续采集10次
          {
           delay_ns(ShutTime);
           GPIOC->BSRR =GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2; // CONV A B C =1;
         while(GPIO_ReadInputDataBit(GPIOD,AD_BUSY)){;}
          delay_ns(1);
         GPIO_ResetBits(GPIOC,AD_CS);//  cs=0
         for(RDI=0;RDI<6;)
               {GPIO_ResetBits(GPIOC,AD_RD);//  rd=0
                delay_ns(1);
                AD_valueTemp[RDI][times]=GPIO_ReadInputData(GPIOB);
                 GPIO_SetBits(GPIOC,AD_RD); // rd=1;
                 RDI++;
                 }
         GPIO_SetBits(GPIOC,AD_CS);  // cs=1
         GPIOC->BRR =GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;// CONV A B C=0;
         
          }
   SenserAddress=0x00;               
   UpdateSenserAddress()
dengfeng5357
4楼-- · 2020-01-17 05:17
lixin91985 发表于 2017-1-16 09:34
这个项目 貌似以前做过 。
  for(times=0;timesBSRR =GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2; // CONV A B C = ...

谢谢您的回答,我现在读取回来的数好乱,感觉都不是真实的,每次采集回来的都不一样
lixin91985
5楼-- · 2020-01-17 10:04
先查硬件,感觉 你这个是硬件配置错误了。
然后把软件上的时序降低一点。
dengfeng5357
6楼-- · 2020-01-17 15:57
lixin91985 发表于 2017-1-16 12:07
先查硬件,感觉 你这个是硬件配置错误了。
然后把软件上的时序降低一点。 ...

您是指的IO口配置吗?
我用的是LPC1788下的"gpio_17xx_40xx.h"
#define D_AD_RD_3_ON()                 Chip_GPIO_WritePortBit(LPC_GPIO, 0, 31, true)//输出
#define D_AD_BUSY_3()                 Chip_GPIO_GetPinState(LPC_GPIO, 0, 28)//输入
Chip_GPIO_SetPortDIR(LPC_GPIO, 0, 0x0000ffff, false);        //数据P0~P15(这样有问题么?)
感觉上面读数据端口,好象哪感觉不对,望指教,感谢感谢。

一周热门 更多>