初始化函数
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;