ads1115.c
#include "ads1115.h"
void ads1115_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
SDA_A1;
SCL_A1;
delay_ms(5);
}
void i2c_start(void)
{
SDA_A1;
delay_us(15);
SCL_A1;
delay_us(15);
SDA_A0;
delay_us(15); //MIN 160ns
SCL_A0;
delay_us(15);
}
void i2c_stop(void)
{
SDA_A0;
delay_us(15);
SCL_A1;
delay_us(15);
SDA_A1;
delay_us(15); //MIN 160ns
}
void i2c_write_byte(u8 DATA)
{
u8 i;
SCL_A0;
for (i = 0; i < 8; i++)
{
if (DATA & 0x80)
{
SDA_A1;
}
else
{
SDA_A0;
}
SCL_A1;
delay_us(15);
SCL_A0;
delay_us(15);
DATA = DATA << 1;
}
SDA_A1;
SCL_A1;