悬赏
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);
}
卡着六七天了 ,希望大神能指导一下,万分感谢