如题,我配置了ADS1292R双通道采样,每一个DRDY下降沿触发中断读取数据,但是总是读几个数据就会卡住,DRDY不再置低,此时ADS1292R应该不正常工作了,采样率降低也是一样的情况,不知道是软件还是硬件的问题。中断中如果不读取数据ADS1292R是连续转换的,连续读几次数据就不动了。
user4781495:
如题,我配置了ADS1292R双通道采样,每一个DRDY下降沿触发中断读取数据,但是总是读几个数据就会卡住,DRDY不再置低,此时ADS1292R应该不正常工作了,采样率降低也是一样的情况,不知道是软件还是硬件的问题。中断中如果不读取数据ADS1292R是连续转换的,连续读几次数据就不动了。
void EXTI3_IRQHandler(void) // 中断函数{ /* USER CODE BEGIN EXTI3_IRQn 0 */
/* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_3) != RESET) { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_3); Delay_us(10); HAL_SPI_Transmit(&hspi1, &cmd, 1, 0xff); HAL_SPI_Receive(&hspi1, buffer+1+flag, 9, 0xff); //如果没有这行中断是不断的 } /* USER CODE END EXTI3_IRQn 1 */}
void ADS1292R_PowerOn(void) // 上电配置{ ADS1292R_START_H; ADS1292R_CS_H; ADS1292R_PWDN_L; // 进入掉电模式 HAL_Delay(100); ADS1292R_PWDN_H; // 退出掉电模式 HAL_Delay(1000); // 等待稳定 ADS1292R_PWDN_L; // 发出复位脉冲 Delay_us(10); ADS1292R_PWDN_H; HAL_Delay(100); // 等待稳定,可以开始使用ADS1292R1292R // Read ID Control Register (ads1292r: 0x73) while(device_id != 0x00) { device_id = ADS1292R_RREG(ID); HAL_Delay(20); } // Write to registers ADS1292R_WREG(CONFIG2, 0xE0); HAL_Delay(10); // 等待参考电压稳定 ADS1292R_WREG(CONFIG1, 0x02); ADS1292R_WREG(LOFF, 0xF0); ADS1292R_WREG(CH1SET, 0x01); ADS1292R_WREG(CH2SET, 0x01); ADS1292R_WREG(RLD_SENS, 0x30); ADS1292R_WREG(LOFF_SENS, 0x3F); // ADS1292R_WREG(WREG | LOFF_STAT, 0x00); ADS1292R_WREG(RESP1, 0xDE); ADS1292R_WREG(RESP2, 0x07); ADS1292R_WREG(GPIO, 0x0C); }
xyz549040622:
回复 user4781495:
你尝试过不用中断,使用while()循环读取是否无误呢?说实话,用ADS1230的中断调过很久,后来放弃了,用中断就是有问题。
user4781495:
回复 xyz549040622:
while循环接收没试过,这两个有什么区别吗,而且为什么会导致ADS1292R转换异常,DRDY直接没有下降沿产生了
xyz549040622:
回复 user4781495:
是不是有外部的中断打扰了呢,我不确定,但是最终这个中断的方案没用。不过我见有人用过中断的方案。
user5341722:
你好,请问你开发的是针对人体的心电呼吸的系统还是针对动物的心电呼吸系统? 根据你的了解,是否有客户在ADS1292RECG-FE的基础上,重新画电路板修改硬件和软件,开发成功针对人体的心电呼吸检测系统的案例吗?
有人在ADS1292RECG-FE的基础上,重新画电路板修改硬件和软件,开发成功监控小白鼠心电呼吸监控系统的案例吗?
我想开发出来针对小白鼠的心电呼吸监控系统,如果有开发成功的人员,我想和他交流请教一下。谢谢!
TI中文支持网




