[求助] stm32 与 AD7732 求助

Xmg_1997   2019-4-22 15:02 楼主
悬赏 10 分 芯积分未解决
我现在要用stm32 配置ad7732 然后读取ad值,  照着技术文档配置  单转换模式  16位精度   IO模拟SPI (调试过IO模拟都是对的)  但我读出来的值 是固定的  32768     然后我读配置寄存器的值都是自己配置的值。(因为手头的工具有限,我试了以下方法测试RDY引脚,先不配置模式寄存器,然后看RDY引脚输出为高,当我配置完模式寄存器然后去测,他被拉低了。照理说应该就能读值了,但我读出来的数死活是32768。) 下面我贴个配置的代码  求帮助 卡着好几天了。感谢。
///////7732配置
#if 1
      AD7732_Reset();
      delay_ms(10);

           AD7732_Write(0X28);    //channel set up
          AD7732_Write(0X08);
        delay_ms(10);
          AD7732_Write(0X29);    //channel set up
          AD7732_Write(0X08);
        delay_ms(10);

          AD7732_Write(0X30);    //channel conversion time
          AD7732_Write(0XFf);
        delay_ms(10);
          AD7732_Write(0X31);
          AD7732_Write(0XFf);
        delay_ms(10);

          AD7732_Write(0X38);   //mode  模式寄存器
          AD7732_Write(0X40);//16位
      delay_ms(10);
          AD7732_Write(0X39);
          AD7732_Write(0X40);//16位
//      delay_ms(10);
          
          
       
//            AD7732_Write(0x48);
//      delay_ms(10);
#endif


//读取值  
if(READ_AD77322(0x61)==0x2b)
                {
                         AD7732_Write(0X48);
                         AA3=AD7732_Read();
                         AA4=AD7732_Read();

                        dataaaa=(u16)AA3*256+AA4;
                        printf("channel_data=%d\r\n",dataaaa);
                       
                         AD7732_Write(0X38);
                        AD7732_Write(0X40);//16位
                        delay_ms(10);
                        AD7732_Write(0X39);
                        AD7732_Write(0X40);//16位
                        delay_ms(10);
                }

卡着六七天了 ,希望大神能指导一下,万分感谢

回复评论 (2)

点赞  2019-4-27 22:37
引用: ylyfxzsx 发表于 2019-4-27 22:37
http://www.bdtic.com/cn/adi/ad7734

文件损坏
点赞  2019-4-28 10:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复