调整lis2doc驱动,已经可以正常工作
authorSnickerSun <snickersun@163.com>
Wed, 3 Jan 2024 08:50:29 +0000 (16:50 +0800)
committerSnickerSun <snickersun@163.com>
Wed, 3 Jan 2024 08:50:29 +0000 (16:50 +0800)
12 files changed:
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_activity.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_free_fall.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_orientation.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_read_data_polling.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_read_data_single.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_read_fifo.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_self_test.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_tap_double.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_tap_single.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/examples/lis2doc_wake_up.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/lis2doc_at_cmd.c
code/sdk/drivers/peripheral/acc/lis2doc_STdC/lis2doc_porting.c

index 635b804..2a9b5fc 100644 (file)
@@ -111,9 +111,11 @@ void lis2doc_activity(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index e376d85..9e7ed5e 100644 (file)
@@ -110,9 +110,12 @@ void lis2doc_free_fall(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index 6e3cb07..d982e5e 100644 (file)
@@ -93,9 +93,12 @@ void lis2doc_orientation(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index 0d308c3..a66b1b0 100644 (file)
@@ -98,9 +98,12 @@ void lis2doc_read_data_polling(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index 4ee208c..9a11269 100644 (file)
@@ -98,9 +98,12 @@ void lis2doc_read_data_single(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index 8a6ac8b..af1eb8d 100644 (file)
@@ -94,9 +94,12 @@ void lis2doc_read_data_fifo(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index 8f39723..2b20bbd 100644 (file)
@@ -251,9 +251,12 @@ void lis2doc_self_test(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Start self test */\r
   while (1) {\r
index c48dc69..3d4fd59 100644 (file)
@@ -96,9 +96,12 @@ void lis2doc_double_tap(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index 47b4e1e..d1ced84 100644 (file)
@@ -96,9 +96,12 @@ void lis2doc_single_tap(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index acc8db9..39c6074 100644 (file)
@@ -108,9 +108,12 @@ void lis2doc_wake_up(void)
   lis2doc_device_id_get(&dev_ctx, &whoamI);\r
 \r
   if (whoamI != LIS2DOC_ID)\r
-    while (1) {\r
+  {\r
       /* manage here device not found */\r
-    }\r
+      LIS_ERROR("read lis2doc id 0x%02X != 0x%02X\r\n",whoamI,LIS2DOC_ID);\r
+      return ;\r
+  }\r
+\r
 \r
   /* Restore default configuration */\r
   lis2doc_reset_set(&dev_ctx, PROPERTY_ENABLE);\r
index c8579e0..2f4aa56 100644 (file)
@@ -1,7 +1,6 @@
 
 // #include "lis2doc.h"
 
-#ifdef SUPPORT_AT_CMD
 #include "at_cmd_api.h"
 #include "pm_control.h"
 #include "lis2doc_porting.h"
@@ -80,5 +79,3 @@ at_cmd_table_t *get_lis2doc_cmd_table(uint32_t *cmd_count)
     *cmd_count = ARRAY_COUNT(g_lis2doc_cmd);
     return (at_cmd_table_t *)g_lis2doc_cmd;
 }
-
-#endif
index 97831f0..0fc4a8b 100644 (file)
 #include "soc_osal.h"
 #include "tcxo.h"
 uint8_t  SENSOR_BUS = 0;
-
-typedef union {
-  int16_t i16bit[3];
-} axis3bit16_t;
-
 /* Private macro -------------------------------------------------------------*/
 #define    BOOT_TIME            20 //ms
 
@@ -69,23 +64,13 @@ typedef union {
 #define ST_MAX_POS      1500.0f
 
 /* Private variables ---------------------------------------------------------*/
-static lis2doc_mode_t pm;
-static axis3bit16_t data_raw_acceleration[SELF_TEST_SAMPLES];
-static float acceleration_mg[SELF_TEST_SAMPLES][3];
-static uint8_t whoamI, rst;
-static uint8_t tx_buffer[1000];
 uint8_t g_acc_handle=0;
 static uint8_t g_acc_installed = 0;
 
 #define LIS2DOC_I2C_BUS  I2C_BUS_2
-#define LIS2DOC_I2C_DEV_8ADDR   LIS2DOC_I2C_ADD_H
+#define LIS2DOC_I2C_DEV_7ADDR   0x19  
 #define LIS2DOC_I2C_TIME_MAX       3
 
-/* Utility functions ---------------------------------------------------------*/
-static inline float ABSF(float _x)
-{
-  return (_x < 0.0f) ? -(_x) : _x;
-}
 /*
  * @brief  platform specific initialization (platform dependent)
  */
@@ -103,7 +88,7 @@ void platform_init(void)
     }
 
     LIS_WARNING("lis2doc:i2c_id = %d  i2c_speed = %d  slave_addr  = 0x%x \r\n",
-        LIS2DOC_I2C_BUS, 400000, LIS2DOC_I2C_DEV_8ADDR);
+        LIS2DOC_I2C_BUS, 400000, LIS2DOC_I2C_DEV_7ADDR);
 
     g_acc_installed = 1;
 
@@ -152,7 +137,7 @@ int32_t platform_write(void *handle, uint8_t reg, const uint8_t *bufp,
     data.receive_len = 0;
 
     for (retry = 0; retry < LIS2DOC_I2C_TIME_MAX; retry++) {
-        ret = uapi_i2c_master_write(LIS2DOC_I2C_BUS, LIS2DOC_I2C_DEV_8ADDR, &data);
+        ret = uapi_i2c_master_write(LIS2DOC_I2C_BUS, LIS2DOC_I2C_DEV_7ADDR, &data);
         if (ret == ERRCODE_SUCC) {
             break;
         }
@@ -191,7 +176,7 @@ int32_t platform_read(void *handle, uint8_t reg, uint8_t *bufp,
     data.receive_len = len;
 
     for (retry = 0; retry < LIS2DOC_I2C_TIME_MAX; retry++) {
-        ret = uapi_i2c_master_writeread(LIS2DOC_I2C_BUS, LIS2DOC_I2C_DEV_8ADDR, &data);
+        ret = uapi_i2c_master_writeread(LIS2DOC_I2C_BUS, LIS2DOC_I2C_DEV_7ADDR, &data);
         if (ret == ERRCODE_SUCC) {
             break;
         }