Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BME680 I2C functions using C code

    Callum42069
    Member

    BME680 I2C functions using C code

    Hello im just wondering if anyone can explain how the I2C functions (read/write) need to be set up for the BME680 sensor and possible any examples? i am using the raspberry pi 4b and just trying to read the sensors values and print them to the screen then save the outcomes in a text file

     

    Tags (3)
    7 REPLIES 7
    BSTRobin
    Community Moderator

    Re: BME680 I2C functions using C code

    Hello Callum42069,

    There was example code in github for BME680, https://github.com/BoschSensortec/BME68x-Sensor-API/blob/master/examples/common/common.c

    For I2C read/write function, you need to implement the following functions in bold. There functions were general I2C reading, writing.

    BME68X_INTF_RET_TYPE bme68x_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr)
    {
    uint8_t dev_addr = *(uint8_t*)intf_ptr;

    return coines_read_i2c(dev_addr, reg_addr, reg_data, (uint16_t)len);
    }

    BME68X_INTF_RET_TYPE bme68x_i2c_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr)
    {
    uint8_t dev_addr = *(uint8_t*)intf_ptr;

    return coines_write_i2c(dev_addr, reg_addr, (uint8_t *)reg_data, (uint16_t)len);
    }

    Callum42069
    Member

    Re: BME680 I2C functions using C code

    Is ther any way to do this without the use of coines ? and so just implementing them functions will allow for I2c data transfer?

     

    BSTRobin
    Community Moderator

    Re: BME680 I2C functions using C code

    Hello Callum42069,
    BME680 sensor API was portable. For different HW paltform, just need to replace coines_read_i2c, coines_write_i2c function.

    Callum42069
    Member

    Re: BME680 I2C functions using C code

    Ok so for the raspberry pi for example i would just put pi read/write? and then the address of the sensor?

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist