专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
关于两个激光测距模块
2019-07-21 05:40
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
1911
2
1387
激光模块.zip
(7.46 MB, 下载次数: 13)
2019-1-19 16:40 上传 点击文件名下载附件
想用一个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);
加载中...
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
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);
一周热门 更多>