summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorguozhanxin <[email protected]>2019-03-08 10:37:45 +0800
committerguozhanxin <[email protected]>2019-03-08 10:37:48 +0800
commitf6eabb2d0a6184ef6fc6c5c6baca001da18c5e4f (patch)
treeba794b2f24c238a78b5f475de0acfe0972761a87
parent507a90f05583c381f3a9cb53ad345b1277cbe06b (diff)
[sensor] Fixed a problem where threads were repeatedly created。| 修复线程被重复创建的问题
-rw-r--r--components/drivers/sensors/sensor_cmd.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/components/drivers/sensors/sensor_cmd.c b/components/drivers/sensors/sensor_cmd.c
index 07487c8866..4658a42722 100644
--- a/components/drivers/sensors/sensor_cmd.c
+++ b/components/drivers/sensors/sensor_cmd.c
@@ -44,6 +44,9 @@ static void sensor_show_data(rt_size_t num, rt_sensor_t sensor, struct rt_sensor
case RT_SENSOR_CLASS_STEP:
LOG_I("num:%3d, step:%5d, timestamp:%5d", num, sensor_data->data.step, sensor_data->timestamp);
break;
+ case RT_SENSOR_CLASS_PROXIMITY:
+ LOG_I("num:%3d, distance:%5d, timestamp:%5d", num, sensor_data->data.proximity, sensor_data->timestamp);
+ break;
default:
break;
}
@@ -96,6 +99,12 @@ static void sensor_fifo(int argc, char **argv)
return;
}
sensor = (rt_sensor_t)dev;
+
+ if (rt_device_open(dev, RT_DEVICE_FLAG_FIFO_RX) != RT_EOK)
+ {
+ LOG_E("open device failed!");
+ return;
+ }
if (sensor_rx_sem == RT_NULL)
{
@@ -117,11 +126,6 @@ static void sensor_fifo(int argc, char **argv)
rt_device_set_rx_indicate(dev, rx_callback);
- if (rt_device_open(dev, RT_DEVICE_FLAG_FIFO_RX) != RT_EOK)
- {
- LOG_E("open device failed!");
- return;
- }
rt_device_control(dev, RT_SENSOR_CTRL_SET_ODR, (void *)20);
}
#ifdef FINSH_USING_MSH