久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1671|回復: 3
收起左側

GPS WiFi LCD 溫度傳感器 更新頻率能不能快一點 求幫助

[復制鏈接]
ID:353926 發表于 2019-5-31 17:31 | 顯示全部樓層 |閱讀模式
用LCD顯示GPS和溫濕度信息,用WiFi將這些數據傳到網絡調試助手中。現在WiFi大概半分鐘能傳輸一次,LCD顯示的溫度和GPS半分鐘更新一次,我想問一下這是怎么回事。更新頻率能不能快一點。
回復

使用道具 舉報

ID:353926 發表于 2019-6-1 21:44 | 顯示全部樓層
zhanghyg 發表于 2019-6-1 09:17
你把所有while(!........);這些換個方式寫,不然程序就死在這里了。

可以說下怎么寫嗎
回復

使用道具 舉報

ID:330198 發表于 2019-6-1 09:17 | 顯示全部樓層
你把所有while(!........);這些換個方式寫,不然程序就死在這里了。
回復

使用道具 舉報

ID:353926 發表于 2019-5-31 18:36 | 顯示全部樓層
  1. int nmea_decode_test(void)
  2. {
  3.                 double deg_lat;//轉換成[degree].[degree]格式的緯度
  4.                 double deg_lon;//轉換成[degree].[degree]格式的經度

  5.     nmeaINFO info;          //GPS解碼后得到的信息
  6.     nmeaPARSER parser;      //解碼時使用的數據結構  
  7.     uint8_t new_parse=0;    //是否有新的解碼數據標志
  8.   
  9.     nmeaTIME beiJingTime;    //北京時間
  10.   
  11.                 uint8_t ucStatus;
  12.                 char cStr [ 1000 ] ;
  13.                 char str_buff[100];
  14.                
  15.                 LCD_SetFont(&Font8x16);
  16.                 LCD_SetColors(RED,BLACK);
  17.                
  18.                 ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);        /* 清屏,顯示全黑 */

  19.     /*設置字體顏色及字體的背景顏色*/
  20.     LCD_SetColors(RED,BLACK);
  21.        
  22.           ILI9341_DispStringLine_EN(LINE(1)," Wildfire STM32-F103");
  23.     ILI9341_DispStringLine_EN(LINE(2),"  GPS module");

  24.   
  25.     /* 設置用于輸出調試信息的函數 */
  26.     nmea_property()->trace_func = &trace;
  27.     nmea_property()->error_func = &error;
  28.     nmea_property()->info_func = &gps_info;

  29.     /* 初始化GPS數據結構 */
  30.     nmea_zero_INFO(&info);
  31.     nmea_parser_init(&parser);

  32.     while(1)
  33.     {
  34.                                
  35.       if(GPS_HalfTransferEnd)     /* 接收到GPS_RBUFF_SIZE一半的數據 */
  36.       {
  37.         /* 進行nmea格式解碼 */
  38.         nmea_parse(&parser, (const char*)&gps_rbuff[0], HALF_GPS_RBUFF_SIZE, &info);
  39.         
  40.         GPS_HalfTransferEnd = 0;   //清空標志位
  41.         new_parse = 1;             //設置解碼消息標志
  42.       }
  43.       else if(GPS_TransferEnd)    /* 接收到另一半數據 */
  44.       {

  45.         nmea_parse(&parser, (const char*)&gps_rbuff[HALF_GPS_RBUFF_SIZE], HALF_GPS_RBUFF_SIZE, &info);
  46.       
  47.         GPS_TransferEnd = 0;
  48.         new_parse =1;
  49.       }
  50.       
  51.       if(new_parse )                //有新的解碼消息   
  52.       {   
  53.         /* 對解碼后的時間進行轉換,轉換成北京時間 */
  54.         GMTconvert(&info.utc,&beiJingTime,8,1);
  55.         
  56.         /* 輸出解碼得到的信息 */
  57.                                 printf("\r\n時間%d-%02d-%02d,%d:%d:%d\r\n", beiJingTime.year+1900, beiJingTime.mon,beiJingTime.day,beiJingTime.hour,beiJingTime.min,beiJingTime.sec);
  58.                                 //info.lat lon中的格式為[degree][min].[sec/60],使用以下函數轉換成[degree].[degree]格式
  59.                                
  60.                                 deg_lat = nmea_ndeg2degree(info.lat);
  61.                                 deg_lon = nmea_ndeg2degree(info.lon);
  62.                        
  63.                                 printf("\r\n緯度:%f,經度%f\r\n",deg_lat,deg_lon);
  64.         printf("\r\n海拔高度:%f 米 ", info.elv);
  65.         printf("\r\n速度:%f km/h ", info.speed);
  66.         printf("\r\n航向:%f 度", info.direction);
  67.                                
  68.                                 printf("\r\n正在使用的GPS衛星:%d,可見GPS衛星:%d",info.satinfo.inuse,info.satinfo.inview);

  69.                           printf("\r\n正在使用的北斗衛星:%d,可見北斗衛星:%d",info.BDsatinfo.inuse,info.BDsatinfo.inview);
  70.                                 printf("\r\nPDOP:%f,HDOP:%f,VDOP:%f",info.PDOP,info.HDOP,info.VDOP);
  71.         
  72.         /* 液晶輸出 */
  73.         
  74.         /* 設置前景顏色(字體顏色)*/
  75.         LCD_SetTextColor(BLUE);
  76.         
  77.         ILI9341_DispStringLine_EN(LINE(5)," GPS Info:");

  78.         /* 設置前景顏色(字體顏色)*/
  79.         LCD_SetTextColor(WHITE);
  80.         
  81.         /* 顯示時間日期 */
  82.         sprintf(str_buff," Date:%4d/%02d/%02d ", beiJingTime.year+1900, beiJingTime.mon,beiJingTime.day);
  83.         ILI9341_DispStringLine_EN(LINE(6),str_buff);
  84.       
  85.                           sprintf(str_buff," Time:%02d:%02d:%02d", beiJingTime.hour,beiJingTime.min,beiJingTime.sec);
  86.         ILI9341_DispStringLine_EN(LINE(7),str_buff);

  87.         /* 緯度 經度*/
  88.         sprintf(str_buff," latitude :%.6f ", deg_lat);
  89.         ILI9341_DispStringLine_EN(LINE(8),str_buff);
  90.         
  91.         sprintf(str_buff," longitude :%.6f",deg_lon);
  92.         ILI9341_DispStringLine_EN(LINE(9),str_buff);
  93.         
  94.         /* 正在使用的衛星 可見的衛星*/
  95.         sprintf(str_buff," GPS  Satellite in use :%2d ", info.satinfo.inuse);
  96.         ILI9341_DispStringLine_EN(LINE(10),str_buff);   
  97.         
  98.                                 sprintf(str_buff," GPS Satellite in view :%2d", info.satinfo.inview);
  99.                                 ILI9341_DispStringLine_EN(LINE(11),str_buff);   

  100. //        /* 正在使用的衛星 可見的衛星*/
  101. //        sprintf(str_buff," BDS  Satellite in use :%2d ", info.BDsatinfo.inuse);
  102. //        ILI9341_DispStringLine_EN(LINE(12),str_buff);   
  103. //        
  104. //       sprintf(str_buff," BDS Satellite in view :%2d", info.BDsatinfo.inview);
  105. //        ILI9341_DispStringLine_EN(LINE(13),str_buff);   
  106.         
  107.         /* 海拔高度 */
  108.         sprintf(str_buff," Altitude:%4.2f m", info.elv);
  109.         ILI9341_DispStringLine_EN(LINE(12),str_buff);
  110.         
  111.         /* 速度 */
  112.         sprintf(str_buff," speed:%4.2f km/h", info.speed);
  113.         ILI9341_DispStringLine_EN(LINE(13),str_buff);
  114.          
  115.         /* 航向 */
  116. //        sprintf(str_buff," Track angle:%3.2f deg", info.direction);
  117. //        ILI9341_DispStringLine_EN(LINE(14),str_buff);
  118.                                         DHT11_Data_TypeDef DHT11_Data;//聲明
  119.                                         DHT11_Read_TempAndHumidity ( & DHT11_Data );
  120.                                         a1=DHT11_Data.humi_int;
  121.                                         b1=DHT11_Data.humi_deci;
  122.                                         c1=DHT11_Data.temp_int;
  123.                                         d1=DHT11_Data.temp_deci;       
  124.                                         LCD_SetFont(&Font8x16);       
  125.                                         LCD_SetColors(WHITE ,BLACK);       
  126.                                         sprintf(dispBuff," humi:%d.%dRH  temp:%d.%dC",a1,b1,c1,d1);
  127.                                         LCD_ClearLine(LINE(14));       
  128.                                         ILI9341_DispStringLine_EN(LINE(14),dispBuff);  //14行顯示英文字符串
  129.                                
  130.                                
  131.                                 printf ( "\r\n正在配置 ESP8266 ......\r\n" );

  132.                                 macESP8266_CH_ENABLE();
  133.                                
  134.                                 ESP8266_AT_Test ();
  135.                                
  136.                                 ESP8266_Net_Mode_Choose ( STA );

  137.                                 while ( ! ESP8266_JoinAP ( macUser_ESP8266_ApSsid, macUser_ESP8266_ApPwd ) );       
  138.                                
  139.                                 ESP8266_Enable_MultipleId ( DISABLE );
  140.                                
  141.                                 while ( !        ESP8266_Link_Server ( enumTCP, macUser_ESP8266_TcpServer_IP, macUser_ESP8266_TcpServer_Port, Single_ID_0 ) );
  142.                                
  143.                                 while ( ! ESP8266_UnvarnishSend () );
  144.                                
  145.                                 printf ( "\r\n配置 ESP8266 完畢\r\n" );                       
  146.                                        
  147.                                         if ( DHT11_Read_TempAndHumidity ( & DHT11_Data ) == SUCCESS )       //讀取 DHT11 溫濕度信息
  148.                                         {       
  149.                                         sprintf ( cStr, "\r\n檢測成功!\r\n\r\n濕度為%d.%d %RH ,溫度為 %d.%d℃ \r\n經度是%f ,緯度是%f\r\n",
  150.                                                                                 DHT11_Data .humi_int, DHT11_Data .humi_deci, DHT11_Data .temp_int, DHT11_Data.temp_deci, deg_lat,deg_lon);

  151.                                         }

  152.                                         printf ( "%s", cStr );                  //打印讀取 DHT11 溫濕度信息       
  153.                                        
  154.                                         ESP8266_SendString ( ENABLE, cStr, 0, Single_ID_0 );                       //發送 DHT11 溫濕度信息和GPS信息到網絡調試助手
  155.                                        
  156.                                         if ( ucTcpClosedFlag )                                             //檢測是否失去連接
  157.                                         {
  158.                                                 ESP8266_ExitUnvarnishSend ();                                    //退出透傳模式
  159.                                                
  160.                                                 do ucStatus = ESP8266_Get_LinkStatus ();                         //獲取連接狀態
  161.                                                 while ( ! ucStatus );
  162.                                                
  163.                                                 if ( ucStatus == 4 )                                             //確認失去連接后重連
  164.                                                 {
  165.                                                         printf ( "\r\n正在重連熱點和服務器 ......\r\n" );
  166.                                                        
  167.                                                         while ( ! ESP8266_JoinAP ( macUser_ESP8266_ApSsid, macUser_ESP8266_ApPwd ) );
  168.                                                        
  169.                                                         while ( !        ESP8266_Link_Server ( enumTCP, macUser_ESP8266_TcpServer_IP, macUser_ESP8266_TcpServer_Port, Single_ID_0 ) );
  170.                                                        
  171.                                                         printf ( "\r\n重連熱點和服務器成功\r\n" );

  172.                                                 }
  173.                                                
  174.                                                 while ( ! ESP8266_UnvarnishSend () );               
  175.                                                
  176.                                         }

  177.                                 }

  178.                                
  179.                                                         new_parse = 0;
  180.                                                 }

  181.                                         }
  182. 這是GPS解析數據、LCD顯示GPS和溫度、WiFi傳輸GPS和溫度的程序。有了WiFi傳輸函數LCD更新顯示GPS和溫度信息的頻率變慢了。
復制代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区视频播放 | 亚洲欧洲综合av | 欧美日韩中文字幕在线 | 免费午夜电影 | 国产精品网址 | 亚洲国产精品91 | 精品一区二区三区在线视频 | 这里有精品 | 欧美日韩精品 | 国产视频一区在线 | 精品国产一区一区二区三亚瑟 | 日韩视频―中文字幕 | 男女一区二区三区 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 伊人网91 | 日韩一区二区av | 亚洲精品免费观看 | 91在线免费观看网站 | 日韩一区二区三区在线 | 国产精品久久久久久妇女 | 91大神xh98xh系列全部 | 久久精品中文 | 丁香六月激情 | 91精品久久久久久久久中文字幕 | 黄色在线观看网址 | 免费观看av | 波多野结衣中文字幕一区二区三区 | 亚洲一区视频在线 | 久久青| 亚洲视频一区 | 最新国产视频 | 中文字幕精品一区二区三区精品 | 超碰导航| 麻豆久久| 春色av| 亚洲一区国产 | 91精品国产综合久久福利软件 | 精品国产一区二区三区日日嗨 | 中文字幕在线观看一区二区 | 日韩精品视频一区二区三区 | 日韩欧美在线观看 |