初级会员

- 积分
- 83
- 金钱
- 83
- 注册时间
- 2016-6-28
- 在线时间
- 17 小时
|

楼主 |
发表于 2019-4-15 00:53:12
|
显示全部楼层
void VL53L0_task(void *pvParameters)
{
VL53L0X_Dev_t vl53l0x_dev;
VL53L0X_RangingMeasurementData_t RangingMeasurementData;
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOB_CLK_ENABLE();
VL53L0X_Error Status=VL53L0X_ERROR_NONE;
GPIO_InitStruct.Pin = GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
VL53L0X_i2c_init();
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);
HAL_Delay(30);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);
HAL_Delay(30);
vl53l0x_dev.comms_speed_khz = 400;
vl53l0x_dev.comms_type = 1;
vl53l0x_dev.I2cDevAddr = VL53L0X_Addr;
VL53L0X_ResetDevice(&vl53l0x_dev);
VL53L0X_DataInit(&vl53l0x_dev);
VL53L0X_StaticInit(&vl53l0x_dev);
VL53L0X_SetDeviceMode(&vl53l0x_dev,VL53L0X_DEVICEMODE_SINGLE_RANGING); //2aá¿Ä£ê½
while(1)
{
//2aá¿
Status = VL53L0X_SetDeviceMode(&vl53l0x_dev,VL53L0X_DEVICEMODE_SINGLE_RANGING);
if(Status==VL53L0X_ERROR_NONE)
{
Status = VL53L0X_PerformSingleMeasurement(&vl53l0x_dev);
vTaskDelay(500);
if(Status==VL53L0X_ERROR_NONE)
{
Status = VL53L0X_GetRangingMeasurementData(&vl53l0x_dev,&RangingMeasurementData);
}
}
vTaskDelay(500);
VL53L0X_ClearInterruptMask(&vl53l0x_dev,0);
Distance_data = RangingMeasurementData.RangeMilliMeter;
vTaskDelay(500);
}
} |
|