本实验用的是模拟 IIC 读取数据
IIC 模式中 CSB 拉低时, IIC 从设备地址为 0111 0111, CSB 拉高时,IIC 设备地址为 0111 0110
2、 温度气压读取
IIC 开始、结束、等待 ack、读取发送函数等(参考匿名)
#define MS5611_ADDR 0x77 //0xee //
#define CMD_RESET 0x1E // ADC reset command
#define CMD_ADC_READ 0x00 // ADC read command
#define CMD_ADC_CONV 0x40 // ADC conversion command
#define CMD_ADC_D1 0x00 // ADC D1 conversion
#define CMD_ADC_D2 0x10 // ADC D2 conversion
#define CMD_ADC_256 0x00 // ADC OSR=256
#define CMD_ADC_512 0x02 // ADC OSR=512
#define CMD_ADC_1024 0x04 // ADC OSR=1024
#define CMD_ADC_2048 0x06 // ADC OSR=2048
#define CMD_ADC_4096 0x08 // ADC OSR=4096
#define CMD_PROM_RD 0xA0 // Prom read command
#define PROM_NB 8
#define MS5611_OSR 0x08 //CMD_ADC_4096
//开始信号
int I2c_Soft_Start()
{
MS5611_IIC_SDA = 1;
MS5611_IIC_SCL = 1;
delay_us(4);
if(!MS5611_READ_SDA)return 0; //SDA 线为低电平则总线忙,退出
MS5611_IIC_SDA = 0;
delay_us(4);
if(MS5611_READ_SDA) return 0; //SDA 线为高电平则总线出错,退出
MS5611_IIC_SDA = 0;
delay_us(4);
return 1;
}
//结束信号
评论0
最新资源