gy271_sample.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * Copyright (c) 2006-2018, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2020-01-08 JiangChenhui the first version
  9. */
  10. #include "sensor_honey_gy271.h"
  11. #ifdef PKG_USING_GY271_SAMPLE
  12. static rt_err_t sensor_gy271_sample(int argc, char *argv[])
  13. {
  14. static rt_device_t sensor_dev; /* 传感器设备句柄 */
  15. struct rt_sensor_data data; /* 传感器数据 */
  16. /* 根据设备名称查找传感器设备,获取设备句柄 */
  17. sensor_dev = rt_device_find("mag_gy271");
  18. /* 以只读及轮询模式打开传感器设备 */
  19. rt_device_open(sensor_dev, RT_DEVICE_FLAG_RDONLY);
  20. if (rt_device_read(sensor_dev, 0, &data, 1) == 1)
  21. {
  22. rt_kprintf("Mag: x:%3dmGa, y:%3dmGa, z:%3dmGa, timestamp:%5d\n", data.data.mag.x, data.data.mag.y, data.data.mag.z, data.timestamp);
  23. }
  24. rt_device_close(sensor_dev);
  25. return RT_EOK;
  26. }
  27. MSH_CMD_EXPORT(sensor_gy271_sample,sensor gy271 sample);
  28. static void i2c_gy271_sample(int argc, char *argv[])
  29. {
  30. char bus[RT_NAME_MAX];
  31. gy271_data_t data;
  32. if (argc == 2)
  33. {
  34. rt_strncpy(bus, argv[1], RT_NAME_MAX);
  35. }
  36. else
  37. {
  38. rt_strncpy(bus, "i2c1", RT_NAME_MAX);
  39. }
  40. gy271_device_t dev = gy271_init(bus);
  41. for (int i = 0; i < 10; i++)
  42. {
  43. gy271_read_data(dev, &data);
  44. rt_kprintf("x:%d y:%d z:%d\n", data.x, data.y, data.z);
  45. rt_thread_mdelay(100);
  46. }
  47. }
  48. MSH_CMD_EXPORT(i2c_gy271_sample, i2c gy271 sample);
  49. #endif