Bosch Sensortec Community

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

    [BME280] bme280_init() error

    [BME280] bme280_init() error

    honoju
    Member

    Hello,

    I am using a BME280 sensor with STM32L476RG microcontroler.

    I am having trouble with the bme280_init() function.

    In this function, I pass the first null_ptr_check() so dev , dev->read , dev->write and dev->delay_us  are different from NULL.

    But just after that when I enter the bme280_get_regs() function, I don't pass the null_ptr_check() whereas my device structure has not changed.

    I investigated the matter with a debugger and I found out dev->intf_ptr has changed from BME280_SPI_INTF to BME280_I2C_INT, which I don't understand as there was no redefinition of the device structure.

    Could someone help me?

    Thanks

    13 REPLIES 13

    Yanchao
    Community Moderator
    Community Moderator

    Hi,

    Maybe lose some configuration. Please check code any different with our example code in BME280_driver.

    Best regards.

    Thanks for the reply.

    Well, I based my code on the driver example from the beginning.

    What I find awkward is that the two null_ptr_check(dev) functions are almost consecutive and that I pass the first null_ptr_check(dev)  but not the second without the device structure redifinition.

    I attach a picture of the bug location : bme280_init() and just above there is the device structure definition similar to the one in the driver example.

    Regards

    Yanchao
    Community Moderator
    Community Moderator

    Hi

    In bme280_init(), the first null_ptr_check(dev) is ok, but the next null_ptr_check() in bme280_get_regs(BME280_CHIP_ID_ADDR, &chip_id, 1, dev)  is failed, and interface change from SPI to I2C?

    It's realy stange, could you please single step print log to confirm the workflow is correct?

    Minhwan
    Community Moderator
    Community Moderator

    Hello honoju, 

     

    Could you give me what is error code for rslt? 

    You can print out with rslt value. 

    And, you can check the error with bme280_defs.h 🙂 

    Thanks, 

    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