ADS1247读出寄存器的值全是0 ,是坏了吗?
初始化函数
void ADS1247_init(void)
{
SPI2_Config();
Delay_ms(2);
START_HIGH;
Delay_ms(2);
CS_LOW;
Delay_ms(2);
RESET_HIGH;
Delay_ms(2);
while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8) ==1);
SPI2_SendByte(CMD_Reset);
Delay_ms(2);
ADS1247WREG(Reg_MUX0,0x0A);////¹Ø±ÕµçÁ÷Ô´£¬ÕýÊäÈëͨµÀAIN1£¬¸ºÊäÈëͨµÀAIN2.
Delay_ms(2);
ADS1247WREG(Reg_VBias,0x00);//¹Ø±ÕÆ«Öõçѹ
Delay_ms(2);
ADS1247WREG(Reg_MUX1,0x38);//ʽÖдò¿ªÄÚ²¿²Î¿¼
Delay_ms(2);
ADS1247WREG(Reg_SYS0,0x22);//PGA=4, 20sps
Delay_ms(2);
ADS1247WREG(Reg_IDAC0,0x06);//µçÁ÷Ô´µçÁ÷1ma
Delay_ms(2);
ADS1247WREG(Reg_IDAC1,0x03);//µÚÒ»¸ö¼¤ÀøµçÁ÷Êä³öÒý½ÅAIN0£¬µÚ¶þ¸öÊÇAIN3
Delay_ms(2);
SPI2_SendByte(CMD_SYNC);
Delay_ms(2);
//ADS1247_Calibrate();
CS_HIGH;
}
读出的寄存器值

我查了好久代码,初始化的值是没问题的,难道是芯片坏了吗?
SPI2_Config(); Delay_ms(2); START_HIGH; Delay_ms(2); CS_LOW; Delay_ms(2); RESET_HIGH; Delay_ms(2); while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8) ==1); SPI2_SendByte(CMD_Reset); Delay_ms(2); ADS1247WREG(Reg_MUX0,0x0A);////¹Ø±ÕµçÁ÷Ô´£¬ÕýÊäÈëͨµÀAIN1£¬¸ºÊäÈëͨµÀAIN2. Delay_ms(2); ADS1247WREG(Reg_VBias,0x00);//¹Ø±ÕÆ«Öõçѹ Delay_ms(2); ADS1247WREG(Reg_MUX1,0x38);//ʽÖдò¿ªÄÚ²¿²Î¿¼ Delay_ms(2); ADS1247WREG(Reg_SYS0,0x22);//PGA=4, 20sps Delay_ms(2); ADS1247WREG(Reg_IDAC0,0x06);//µçÁ÷Ô´µçÁ÷1ma Delay_ms(2); ADS1247WREG(Reg_IDAC1,0x03);//µÚÒ»¸ö¼¤ÀøµçÁ÷Êä³öÒý½ÅAIN0£¬µÚ¶þ¸öÊÇAIN3 Delay_ms(2);// ADS1247WREG(Reg_GPIOCFG,0x00);// Delay_ms(20);// ADS1247WREG(Reg_GPIODIR,0x00);// Delay_ms(20);// ADS1247WREG(Reg_GPIODAT,0x00); // Delay_ms(20); SPI2_SendByte(CMD_SYNC); Delay_ms(2); //ADS1247_Calibrate(); CS_HIGH;
好吧,真是芯片坏了,换了块新的,正常了
问题解决就好。
