#include "STM32Lib\\stm32f10x.h" #include "ads1220.h" //SPI读写函数 u8 ads1220_SendByte(u8 byte) { while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); SPI_I2S_SendData(SPI1, byte); while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET); return SPI_I2S_ReceiveData(SPI1); } //芯片复位初始化 void ads1220_Initialization (void) { u32 data_temp; for (data_temp = 0; data_temp < 72000 * 50; data_temp++) {;} AD_CS_H; AD_CS_L; AD_CS_L; AD_CS_L; ads1220_SendByte (ADS1220_COMMAND_RESET); //复位 for (data_temp = 0; data_temp < 72000 * 50; data_temp++) {;} AD_CS_L; AD_CS_L; AD_CS_L; AD_CS_H; for (data_temp = 0; data_temp < 72000 * 5; data_temp++) {;} AD_CS_H; AD_CS_L; AD_CS_L; AD_CS_L; ads1220_SendByte (0x43); ads1220_SendByte (0x5a);//5a ads1220_SendByte (0x00);// ads1220_SendByte (0x20);//20 ads1220_SendByte (0x00); AD_CS_L; AD_CS_L; AD_CS_L; AD_CS_H; for (data_temp = 0; data_temp < 72000 * 5; data_temp++) {;} AD_CS_H; AD_CS_L; AD_CS_L; AD_CS_L; ads1220_SendByte (0x44); ads1220_SendByte (0x04); //continual exchange ads1220_SendByte (ADS1220_COMMAND_START); AD_CS_L; AD_CS_L; AD_CS_L; AD_CS_H; } //读取转换结果 u32 ads1220_read_data (void) { u32 data_temp = 0; AD_CS_H; AD_CS_L; AD_CS_L; AD_CS_L; ads1220_SendByte (ADS1220_COMMAND_RDATA); //读取数据寄存器 data_temp += ads1220_SendByte (0xff); data_temp <<= 8; data_temp += ads1220_SendByte (0xff); data_temp <<= 8; data_temp += ads1220_SendByte (0xff); data_temp &= 0xffffff; if (data_temp < 0x800000) data_temp += 0x800000; else { data_temp--; data_temp = ~data_temp; data_temp &= 0xffffff; data_temp = 0x800000 - data_temp; } //ads1220_SendByte (ADS1220_COMMAND_START); AD_CS_L; AD_CS_L; AD_CS_L; AD_CS_H; return data_temp; //return 0x800000; }