关于两个激光测距模块

2019-07-21 05:40发布

激光模块.zip (7.46 MB, 下载次数: 13) 2019-1-19 16:40 上传 点击文件名下载附件

EY~N4XXCTVU3IG$MUD%1K28.png ]DN8WW5DK1BW(IMB74LK{T9.png 2`JQAB%7}PM`IZF}C3~U.png 2RT]2@6Y5{6QS0[N3{8Z}$F.png 3~EL6]FULWUZL()WW}`9GCP.png 想用一个iic挂两个激光模块,通过使能口控制其中一个工作,当初始化VL53L0X_Error vl53l0x_init(VL53L0X_Dev_t *dev)时,能正常测距,当初始化VL53L0X_Error vl53l0x_init2(VL53L0X_Dev_t *dev)时测不出数据,这一句出了错误(while(vl53l0x_set_mode(dev,mode))//配置精度模式);用的是普通测量模式,代码是根据原子哥的改的


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-07-21 09:02
帮顶
哆啦A萌
2楼-- · 2019-07-21 10:22
我之前UCOS下用过两个,给你参考下
        VL53L0X_XSH_Init();//初始化XSH IO口
        VL53L0X_i2c_init();//初始化IIC总线
       
        vl53l0x_dev[VL5310X_INSIDE_ID].I2cDevAddr = VL53L0X_Addr;//I2C地址(上电默认0x52)
        vl53l0x_dev[VL5310X_INSIDE_ID].comms_type = 1;           //I2C通信模式
        vl53l0x_dev[VL5310X_INSIDE_ID].comms_speed_khz = 400;    //I2C通信速率

       
        //========================内侧测量模块配置===========================
        //使能芯片INSIDE
        GPIO_SetBits(VL5310X_XSH_INSIDE_GPIOx ,VL5310X_XSH_INSIDE_GPIO_Pin);
        OSTimeDly(50,OS_OPT_TIME_DLY,&err);//延时
        vl53l0x_Addr_set(&vl53l0x_dev[VL5310X_INSIDE_ID],VL5310X_INSIDE_ADDR);//设置VL53L0X传感器I2C地址
        if(Status!=VL53L0X_ERROR_NONE)
                goto error;
        Status = VL53L0X_DataInit(&vl53l0x_dev[VL5310X_INSIDE_ID]);//设备初始化
        if(Status!=VL53L0X_ERROR_NONE)
                goto error;
        OSTimeDly(50,OS_OPT_TIME_DLY,&err);//延时
        Status = VL53L0X_GetDeviceInfo(&vl53l0x_dev[VL5310X_INSIDE_ID],&vl53l0x_dev_info);//获取设备ID信息
        if(Status!=VL53L0X_ERROR_NONE)
                goto error;
       
        //设置对应的校准值的flah位置
        vl53l0x_dev[VL5310X_INSIDE_ID].adjust_addr = VL5310X_ADJUST_RESERVE_ADDR + VL5310X_SAVE_ADJUST_SIZE*0;
        //设置工作模式
        vl53l0x_set_mode(&vl53l0x_dev[VL5310X_INSIDE_ID],HIGH_ACCURACY);
       
        //=======================外侧测量模块配置=============================
        vl53l0x_dev[VL5310X_OUTSIDE_ID].I2cDevAddr = VL53L0X_Addr;//I2C地址(上电默认0x52)
        vl53l0x_dev[VL5310X_OUTSIDE_ID].comms_type = 1;           //I2C通信模式
        vl53l0x_dev[VL5310X_OUTSIDE_ID].comms_speed_khz = 400;    //I2C通信速率

        //使能芯片OUTSIDE
        GPIO_SetBits(VL5310X_XSH_OUTSIDE_GPIOx ,VL5310X_XSH_OUTSIDE_GPIO_Pin);
        OSTimeDly(50,OS_OPT_TIME_DLY,&err);//延时
        vl53l0x_Addr_set(&vl53l0x_dev[VL5310X_OUTSIDE_ID],VL5310X_OUTSIDE_ADDR);//设置VL53L0X传感器I2C地址
        if(Status!=VL53L0X_ERROR_NONE)
                goto error;
        Status = VL53L0X_DataInit(&vl53l0x_dev[VL5310X_OUTSIDE_ID]);//设备初始化
        if(Status!=VL53L0X_ERROR_NONE)
                goto error;
        OSTimeDly(50,OS_OPT_TIME_DLY,&err);//延时
        Status = VL53L0X_GetDeviceInfo(&vl53l0x_dev[VL5310X_OUTSIDE_ID],&vl53l0x_dev_info);//获取设备ID信息
        if(Status!=VL53L0X_ERROR_NONE)
                goto error;
       
        //设置对应的校准值的flah位置
        vl53l0x_dev[VL5310X_OUTSIDE_ID].adjust_addr = VL5310X_ADJUST_RESERVE_ADDR + VL5310X_SAVE_ADJUST_SIZE*1;
        //设置工作模式
        vl53l0x_set_mode(&vl53l0x_dev[VL5310X_OUTSIDE_ID],HIGH_ACCURACY);
       

一周热门 更多>