diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
index 97744ac..b90ff63 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
@@ -62,7 +62,8 @@
 static pthread_mutex_t loc_cond_mutex_r = PTHREAD_MUTEX_INITIALIZER;
 static pthread_cond_t loc_sync_cond = PTHREAD_COND_INITIALIZER;
 #endif
-
+volatile int nmea_state = 0;
+volatile int nmea_reading = 0;
 static struct mbtk_gnss_cmd_msg_t mbtk_gnss_cmd_msg_map[] = {
 { 1,     "$OK",         NULL,                 0},
 { 2,     "$Fail",       NULL,                 0},
@@ -736,6 +737,7 @@
 
     memset(buf, 0, sizeof(buf));
     mbtk_gnss_handle->getap_status = 0;
+
     while(mbtk_gnss_handle->inited)
     {
         while(mbtk_gnss_handle->getap_status){
@@ -743,13 +745,18 @@
             printf("g");
             usleep(100000);
         }
-        ret = mopen_gnss_read(gnss_handle->dev_fd, buf, MBTK_UART_RECV_BUFFER_SIZE);
-        if(ret > 0) {
-            printf("read: [%d] %s\n", ret, buf);
-            ring_buffer_queue_arr(&gnss_handle->ring_buffer, buf, ret);
-            memset(buf, 0, sizeof(buf));
-        } else {
-            gnss_log("read error\n");
+        if(nmea_state == 1)
+        {
+            nmea_reading = 1;
+            ret = mopen_gnss_read(gnss_handle->dev_fd, buf, MBTK_UART_RECV_BUFFER_SIZE);
+            nmea_reading = 0;
+            if(ret > 0) {
+                printf("read: [%d] %s\n", ret, buf);
+                ring_buffer_queue_arr(&gnss_handle->ring_buffer, buf, ret);
+                memset(buf, 0, sizeof(buf));
+            } else {
+                gnss_log("read error\n");
+            }
         }
         usleep(100000);
     }
@@ -853,6 +860,15 @@
 
     if(0 == state)
     {
+        nmea_state = 0;
+        for(int cont = 0; cont < 200; cont++)
+        {
+            if (nmea_reading == 0)
+            {
+                break;
+            }
+            usleep(10000);
+        }
         ret = exec_cmd(cmd,NULL);
         if(0 != ret)
         {
@@ -863,11 +879,13 @@
         if(0 != ret)
         {
             printf("stop fail %x\n", ret);
-        }
+        }   
     }
 
     if(1 == state)
     {
+        nmea_state = 1;
+
         ret = exec_cmd(cmd,NULL);
         if(0 != ret)
         {
