BMP280芯片I2C驱动开发指南


这颗芯片不太容易焊接,不能长时间风枪吹,否则容易掉壳。

第一部分 硬件连接


电路很简单,没什么需要注意的。

第二部分 软件驱动


本来打算使用SPL06的,结果焊接掉壳了,更换成bmp280了。函数名没有变过来。。。

c 复制代码
void SPL06_Init()
{
    u8 uChipID = 0;
    // wait stable
    SPL06_WriteReg(SPL06_DEV,0xE0,0xB6);
    delay_ms(300);

    while(uChipID!= 0x58){ 
        // 1.Device Reset & check Device
        uChipID = SPL06_ReadReg(SPL06_DEV,0xd0); // Read ID
        delay_ms(2000);        // device check
        delay_ms(2000);        // device check
        delay_ms(2000);        // device check
    }
    printf("BMP280 check Pass!:deviceID = 0x%x \r\n",uChipID);
    
    //2.Device Settings
}
u8 SPL06_ReadReg(u8 dAddr, u8 Reg)
{
    u8 Value = 0;
    //1.启动IIC
    IIC_Start();
    //2.写设备地址
    IIC_Send_Byte((dAddr << 1)|0);
    //3.wait
    if(IIC_Wait_Ack())
    {
        IIC_Stop();
        return 1;
    }
    //4.寄存器地址
    IIC_Send_Byte(Reg);
    //5.wait
    if(IIC_Wait_Ack())
    {
        IIC_Stop();
        return 1;
    }
    //6.启动IIC
    IIC_Start();
    //7.设备地址
    IIC_Send_Byte((dAddr << 1)|1);
    //8.wait read ack
    if(IIC_Wait_Ack())
    {
        IIC_Stop();
        return 1;
    }
    
    Value = IIC_Read_Byte(1);
    //9.stop
    IIC_Stop();
    return Value;
}

void SPL06_WriteReg(u8 dAddr, u8 Reg, u8 Value)
{
    //1.启动IIC
    IIC_Start();
    //2.写设备地址
    IIC_Send_Byte((dAddr << 1)|0);
    //3.wait
    while(IIC_Wait_Ack());
    //4.写寄存器地址
    IIC_Send_Byte(Reg);
    //5.wait
    IIC_Wait_Ack();
    //6.写value
    IIC_Send_Byte(Value);
    //7.wait
    IIC_Wait_Ack();
    //8.stop
    IIC_Stop();
}
相关推荐
dlwlrma_5161 天前
NUCLEO-G0B1RE STM32G0B1RET6的学习(1)——STM32CubeIDE的安装、新建工程和配置硬件SPI
stm32
三品吉他手会点灯1 天前
stm32f103学习笔记-16-RCC(第2节)-讲解系统时钟配置函数SetSysClockTo72()
笔记·stm32·单片机·嵌入式硬件·学习
范纹杉想快点毕业1 天前
100道关于STM32的问题解答共十万字回答,适用入门嵌入式软件初级工程师,筑牢基础,技术积累,校招面试。
驱动开发·单片机·嵌入式硬件·fpga开发·硬件工程
李宥小哥1 天前
创建型设计模式1
stm32·嵌入式硬件·设计模式
d111111111d1 天前
STM32外设学习-ADC模数转换器(代码部分)四个模块,光敏,热敏,电位,反射式红外。
笔记·stm32·单片机·嵌入式硬件·学习
进击大厂的小白1 天前
35.linux的定时器使用
驱动开发
三品吉他手会点灯1 天前
STM32F103学习笔记-16-RCC(第3节)-使用HSE配置系统时钟并使用MCO输出监控系统时钟
c语言·笔记·stm32·单片机·嵌入式硬件·学习
straw_hat.1 天前
32HAL——万年历
stm32·单片机·学习
敬往事一杯酒哈1 天前
第3节 STM32 串口通信
stm32·单片机·嵌入式硬件
XH1.1 天前
学习RT-thread(项目一:基于RT-thread的multi_button控制灯闪烁)
stm32·单片机·学习