#ifndef __ADS1115_H__ #define __ADS1115_H__ #include "stm32f4xx.h" #include #include "bsp/i2c.h" // 包含硬件I2C头文件 #define ADS1115 #ifdef ADS1115 // 添加缺失的类型定义 #ifndef u8 typedef uint8_t u8; #endif #ifndef u16 typedef uint16_t u16; #endif #define ADS1115_SCL_PORT 'A' #define ADS1115_SCL_PIN 6 #define ADS1115_SDA_PORT 'A' #define ADS1115_SDA_PIN 5 #define Accuracy 32768 //ADC单端输入15位精度 #define ADS1115_ADDRESS_0 0x90 //ADDR PIN ->GND #define ADS1115_ADDRESS_1 0x92 //ADDR PIN ->VDD #define ADS1115_ADDRESS_2 0x94 //ADDR PIN ->SDA #define ADS1115_ADDRESS_3 0x96 //ADDR PIN ->SCL //*************ADDR Initial********************/ #define ADS1115_ADDR_BASE 0x48 // 7-bit base address (ADDR=GND) #define ADS1115_ADDRESS (ADS1115_ADDR_BASE << 1) //ADDR PIN ->GND 0x90 #define ADS1115_ADDRESS_W (ADS1115_ADDRESS|0x00) //write address #define ADS1115_ADDRESS_R (ADS1115_ADDRESS|0x01) //read address /************POINTER REGISTER*****************/ #define ADS1115_Pointer_ConverReg 0x00 //Convertion register #define ADS1115_Pointer_ConfigReg 0x01 //Config register #define ADS1115_Pointer_LoThreshReg 0x02 //Lo_thresh register #define ADS1115_Pointer_HiThreshReg 0x03 //Hi_thresh register /************CONFIG REGISTER*****************/ //Bit[15] #define ADS1115_OS_OperationalStatus 0x0000 //No Effect #define ADS1115_OS_SingleConverStart 0x8000 //Begin a single conversion //Bits[14:12] #define ADS1115_MUX_Differ_01 0x0000 //AINp=AIN0, AINn=AIN1(default) #define ADS1115_MUX_Differ_03 0x1000 //AINp=AIN0, AINn=AIN3 #define ADS1115_MUX_Differ_13 0x2000 //AINp=AIN1, AINn=AIN3 #define ADS1115_MUX_Differ_23 0x3000 //AINp=AIN2, AINn=AIN3 #define ADS1115_MUX_Channel_0 0x4000 //AINp=AIN0, AINn=GND #define ADS1115_MUX_Channel_1 0x5000 //AINp=AIN1, AINn=GND #define ADS1115_MUX_Channel_2 0x6000 //AINp=AIN2, AINn=GND #define ADS1115_MUX_Channel_3 0x7000 //AINp=AIN3, AINn=GND //Bits[11:9] #define ADS1115_PGA_6144 0x0000 //FS=6.144V #define ADS1115_PGA_4096 0x0200 //FS=4.096V #define ADS1115_PGA_2048 0x0400 //FS=2.048V(default) #define ADS1115_PGA_1024 0x0600 //FS=1.024V #define ADS1115_PGA_0512 0x0800 //FS=0.512V #define ADS1115_PGA_0256 0x0A00 //FS=0.256V //Bit[8] #define ADS1115_MODE_ContinuConver 0x0000 //Continuous conversion mode #define ADS1115_MODE_SingleConver 0x0100 //Power-down single-shot mode(default) //Bits[7:5] #define ADS1115_DataRate_8 0x0000 //Data Rate = 8 #define ADS1115_DataRate_16 0x0020 //Data Rate = 16 #define ADS1115_DataRate_32 0x0040 //Data Rate = 32 #define ADS1115_DataRate_64 0x0060 //Data Rate = 64 #define ADS1115_DataRate_128 0x0080 //Data Rate = 128(default) #define ADS1115_DataRate_250 0x00A0 //Data Rate = 250 #define ADS1115_DataRate_475 0x00C0 //Data Rate = 475 #define ADS1115_DataRate_860 0x00E0 //Data Rate = 860 //Bit[4] #define ADS1115_COMP_MODE_0 0x0000 //Traditional comparator with hysteresis #define ADS1115_COMP_MODE_1 0x0010 //Window comparator //Bit[3] #define ADS1115_COMP_POL_0 0x0000 //Active low #define ADS1115_COMP_POL_1 0x0008 //Active high //Bit[2] #define ADS1115_COMP_LAT_0 0x0000 //Non-latching comparator #define ADS1115_COMP_LAT_1 0x0004 //Latching comparator //Bits[1:0] #define ADS1115_COMP_QUE_0 0x0000 //Assert after one conversion #define ADS1115_COMP_QUE_1 0x0001 //Assert after two conversion #define ADS1115_COMP_QUE_2 0x0002 //Assert after four conversion #define ADS1115_COMP_QUE_3 0x0003 //Disable Comparator // 添加缺失的宏定义 #define ADS1115_MAX_CHANNEL 4 typedef struct { u16 OS; u16 MUX; u16 PGA; u16 MODE; u16 DataRate; u16 COMP_MODE; u16 COMP_POL; u16 COMP_LAT; u16 COMP_QUE; } ADS1115_InitTypeDefine; extern int16_t ADS1115_RawData[4]; void ADS1115_Init(void); void ADS1115_UserConfig_Single(void); void ADS1115_UserConfig_Continue(void); u8 ADS1115_Config(ADS1115_InitTypeDefine* ADS1115_InitStruct); u8 ADS1115_ReadRawData(int16_t* rawData); void ADS1115_ScanChannel(uint8_t channel); float ADS1115_RawDataToVoltage(int16_t rawData); float ADS1115_GetVoltage(void); float ADS1115_GetAverageVoltage(uint16_t num); void ADS1115_RefreshAllChannel(void); #endif #endif