• 大小: 84KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: STMvl53l0x  激光  测距  

资源简介

一些说明: 1、从官方程序修改得到,在stm32105vc上测试ok,具体源码可从st官网获得。 2、采用i2c方式,pin配置文件在vl53l0x\platform\inc\stm32_i2c.h中配置。

资源截图

代码片段和文件信息

#include “stm32f10x.h“
#include “stdio.h“
#include “math.h“
#include “stdlib.h“
#include “string.h“


#include “vl53l0x_api.h“
#include “vl53l0x_platform.h“
#include “vl53l0x_i2c_platform.h“

VL53L0X_Error vl53l0x_init(void);

VL53L0X_Dev_t vl53l0x_dev;
VL53L0X_DeviceInfo_t vl53l0x_dev_info;
VL53L0X_RangingMeasurementData_t vl53l0x_data;
VL53L0X_Error vl53l0x_status;

/***************************************************************************************/

void print_pal_error(VL53L0X_Error Status)
{
    char buf[VL53L0X_MAX_STRING_LENGTH];
    VL53L0X_GetPalErrorString(Status buf);
    printf(“API Status: %i : %s\n“ Status buf);
}

void print_range_status(VL53L0X_RangingMeasurementData_t* pdata)
{
    char buf[VL53L0X_MAX_STRING_LENGTH];
    uint8_t RangeStatus;
    // New Range Status: data is valid when pdata->RangeStatus = 0
    RangeStatus = pdata->RangeStatus;

    VL53L0X_GetRangeStatusString(RangeStatus buf);
    printf(“Range Status: %i : %s\n“ RangeStatus buf);
}

VL53L0X_Error vl53l0x_start_single_test(VL53L0X_Dev_t *pdev \
                            VL53L0X_RangingMeasurementData_t *pdata)
{
    VL53L0X_Error status = VL53L0X_ERROR_NONE;
    
    if(vl53l0x_status != VL53L0X_ERROR_NONE)
        return vl53l0x_status;

    status = VL53L0X_PerformSingleRangingMeasurement(pdev pdata);
    if(status != VL53L0X_ERROR_NONE){
        printf(“error:Call of VL53L0X_PerformSingleRangingMeasurement\n“);
        return status;
    }
    print_range_status(pdata);
    printf(“Measured distance: %i\n\n“ pdata->RangeMilliMeter);
    return status;
}


VL53L0X_Error vl53l0x_measure_init(VL53L0X_Dev_t *pMyDevice)
{
    VL53L0X_Error Status = VL53L0X_ERROR_NONE;

    //FixPoint1616_t LimitCheckCurrent;
    uint32_t refSpadCount;
    uint8_t isApertureSpads;
    uint8_t VhvSettings;
    uint8_t PhaseCal;
    // Device Initialization
    Status = VL53L0X_StaticInit(pMyDevice); 
    if(Status != VL53L0X_ERROR_NONE){
        printf (“Call of VL53L0X_StaticInit\n“);
        print_pal_error(Status);
        return Status;
    }
    // Device Initialization
    Status = VL53L0X_PerformRefCalibration(pMyDevice &VhvSettings &PhaseCal); 
    if(Status != VL53L0X_ERROR_NONE){
        printf (“Call of VL53L0X_PerformRefCalibration\n“);
        print_pal_error(Status);
        return Status;
    }

    // needed if a coverglass is used and no calibration has been performed
    Status = VL53L0X_PerformRefSpadManagement(pMyDevice&refSpadCount &isApertureSpads);
    if(Status != VL53L0X_ERROR_NONE){
        printf (“Call of VL53L0X_PerformRefSpadManagement\n“);
        printf (“refSpadCount = %d isApertureSpads = %d\n“ refSpadCount isApertureSpads);
        print_pal_error(Status);
        return Status;
    }

    // no need to do this when we use VL53L0X_PerformSingleRangingMeasurement
    Status = VL53L0X_SetDeviceMode(pMyDevice VL53L0X_DEVICEMODE_SINGLE_R

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7058  2016-10-06 19:43  vl53l0程序\main.c

     文件        291  2016-10-06 19:49  vl53l0程序\Readme.txt

     文件      76611  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_api.h

     文件       3492  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_api_calibration.h

     文件       4408  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_api_core.h

     文件       2033  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_api_ranging.h

     文件      12851  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_api_strings.h

     文件      23522  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_def.h

     文件      11240  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_device.h

     文件       4869  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_interrupt_threshold_settings.h

     文件       3714  2016-06-10 12:08  vl53l0程序\vl53l0x\core\inc\vl53l0x_tuning.h

     文件      82841  2016-10-06 17:51  vl53l0程序\vl53l0x\core\src\vl53l0x_api.c

     文件      36880  2016-10-05 18:01  vl53l0程序\vl53l0x\core\src\vl53l0x_api_calibration.c

     文件      65869  2016-10-05 18:02  vl53l0程序\vl53l0x\core\src\vl53l0x_api_core.c

     文件       2192  2016-10-05 18:02  vl53l0程序\vl53l0x\core\src\vl53l0x_api_ranging.c

     文件      13905  2016-10-05 18:02  vl53l0程序\vl53l0x\core\src\vl53l0x_api_strings.c

     文件       1036  2016-10-06 14:10  vl53l0程序\vl53l0x\platform\inc\stm32_i2c.h

     文件       9441  2016-10-05 19:32  vl53l0程序\vl53l0x\platform\inc\vl53l0x_i2c_platform.h

     文件       8732  2016-06-10 12:08  vl53l0程序\vl53l0x\platform\inc\vl53l0x_platform.h

     文件       4217  2016-10-06 12:44  vl53l0程序\vl53l0x\platform\inc\vl53l0x_platform_log.h

     文件       4371  2016-10-05 16:27  vl53l0程序\vl53l0x\platform\inc\vl53l0x_types.h

     文件       4643  2016-10-06 14:09  vl53l0程序\vl53l0x\platform\src\stm32_i2c.c

     文件       9444  2016-10-05 17:37  vl53l0程序\vl53l0x\platform\src\vl53l0x_i2c.c

     文件       8985  2016-06-10 12:08  vl53l0程序\vl53l0x\platform\src\vl53l0x_platform.c

     文件       2889  2016-10-04 13:08  vl53l0程序\vl53l0x\platform\src\vl53l0x_platform_log.c

     目录          0  2016-10-26 21:12  vl53l0程序\vl53l0x\core\inc

     目录          0  2016-10-26 21:12  vl53l0程序\vl53l0x\core\src

     目录          0  2016-10-26 21:12  vl53l0程序\vl53l0x\platform\inc

     目录          0  2016-10-26 21:12  vl53l0程序\vl53l0x\platform\src

     目录          0  2016-10-26 21:12  vl53l0程序\vl53l0x\core

............此处省略6个文件信息

评论

共有 条评论