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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10046|回復: 10
收起左側

proteus仿真GPS顯示時間地點,溫度 附單片機源碼

  [復制鏈接]
ID:306308 發表于 2018-5-6 21:55 | 顯示全部樓層 |閱讀模式
分享個GPS顯示時間地點,溫度的設計
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png

0.png

單片機源程序如下:
  1. #include"GPS.h"
  2. #include "stm32f10x.h"
  3. #include<math.h>

  4. u8 GpsBuffer[NMEA_COUNT_MAX]={0};
  5. //char FindString[80];
  6. char *pFindString="$GPRMC,015152.589,V,0000.0000,N,00000.0000,E,,,020504,,*11\r\n";

  7. u8 GpsFlag;
  8. GPSINFO GpsInfo;
  9. extern  char dingwei[];
  10. extern  u8 dingwei_CRC[];
  11. extern  u8 dingwei_data[30];
  12. void GpsDataInit(void)
  13. {
  14.         GpsInfo.UtcTime[10]='\0';
  15.         GpsInfo.Latitude[9]='\0';
  16.         GpsInfo.Longitude[10]='\0';
  17.         GpsInfo.Speed[5]='\0';
  18.         GpsInfo.Azimuth[5]='\0';
  19.         GpsInfo.UtcData[6]='\0';
  20.         GpsInfo.Altitude[7]='\0';
  21.         
  22. }
  23. u16 FindStr(u8 *str,u8 *ptr)
  24. {
  25.         u16 index=0;
  26.         u8 *STemp=NULL;
  27.         u8 *PTemp=NULL;
  28.         u8 *MTemp=NULL;
  29.         if(0==str||0==ptr)
  30.                 return 0;
  31.         for(STemp=str;*STemp!='\0';STemp++)         //依次查找字符串
  32.         {
  33.                 index++;  //當前偏移量加1
  34.                 MTemp=STemp; //指向當前字符串
  35.                 //比較
  36.                 for(PTemp=ptr;*PTemp!='\0';PTemp++)
  37.                 {        
  38.                         if(*PTemp!=*MTemp)
  39.                         break;
  40.                         MTemp++;
  41.                 }
  42.                 if(*PTemp=='\0')  //出現了所要查找的字符,退出
  43.                         break;
  44.         }
  45.         return index;
  46. }
  47. //GPS解析
  48. void GPSParse(void)
  49. {
  50.          u8 CommaNum=0; //逗號數
  51.         u8 BufIndex=0; //數字量
  52.          u8 Sbuf;
  53.         u8 *Pstr;
  54.         u16 index;
  55.         memset(&GpsInfo,0x00,sizeof(GpsInfo));//清除結構體        
  56.         index= FindStr(GpsBuffer,"$GPRMC,");//查找
  57.         if(index)
  58.         {
  59.                 CommaNum=0;
  60.                 Pstr=GpsBuffer+index+6;         //找到GPRMC,后面的地址
  61.                 do
  62.                 {
  63.                         Sbuf=*Pstr++;        
  64.                 //        USART_SendData(USART1,Sbuf);
  65.                         switch(Sbuf)
  66.                         {
  67.                                 case ',':CommaNum++;  //通過逗號的數目來進行狀態分類
  68.                                                  BufIndex=0;
  69.                                                  break;
  70.                                 default:
  71.                                                 switch(CommaNum)
  72.                                                 {
  73.                                                         case 0:GpsInfo.UtcTime[BufIndex]=Sbuf;break;
  74.                                                         case 1:GpsInfo.Statue=Sbuf;             break;
  75.                                                         case 2:GpsInfo.Latitude[BufIndex]=Sbuf;break;
  76.                                                         case 3:GpsInfo.LatitudeNS=Sbuf;break;
  77.                                                         case 4:GpsInfo.Longitude[BufIndex]=Sbuf;break;
  78.                                                         case 5:GpsInfo.LongitudeEW=Sbuf;break;
  79.                                                         case 6:GpsInfo.Speed[BufIndex]=Sbuf;break;
  80.                                                         case 7:GpsInfo.Azimuth[BufIndex]=Sbuf;break;
  81.                                                         case 8:GpsInfo.UtcData[BufIndex]=Sbuf;break;
  82.                                                         default:break;
  83.                                                 }
  84.                                                 BufIndex++;        //
  85.                                                 break;
  86.                         }
  87.                 }while(Sbuf!='*');//直到出現‘*’退出        
  88.                
  89.         }
  90.         //如上操作
  91.         index= FindStr(GpsBuffer,"$GPGGA,");
  92.         if(index)
  93.         {
  94.                 CommaNum=0;
  95.                 Pstr=GpsBuffer+index+6;
  96.                 do
  97.                 {
  98.                         Sbuf=*Pstr++ ;
  99.                         switch(Sbuf)
  100.                         {
  101.                                 case ',':CommaNum++;
  102.                                                  BufIndex=0;
  103.                                                  break;
  104.                                 default:
  105.                                                 switch(CommaNum)
  106.                                                 {
  107.                                                         case 0:break;
  108.                                                         case 1:break;
  109.                                                         case 2:break;
  110.                                                         case 3:break;
  111.                                                         case 4:break;
  112.                                                         case 5:break;
  113.                                                         case 6:break;
  114.                                                         case 7:break;
  115.                                                         case 8:GpsInfo.Altitude[BufIndex]=Sbuf;break;
  116.                                                         default:break;
  117.                                                 }
  118.                                                 BufIndex++;
  119.                                                 break;
  120.                         }
  121.                 }while(Sbuf!='*');        
  122.         }
  123.         dingwei_data[2]=(GpsInfo.UtcData[4]-0x30)*10+(GpsInfo.UtcData[5]-0x30);//年
  124.         dingwei_data[3]=(GpsInfo.UtcData[2]-0x30)*10+(GpsInfo.UtcData[3]-0x30);//月
  125.         dingwei_data[4]=(GpsInfo.UtcData[0]-0x30)*10+(GpsInfo.UtcData[1]-0x30);//日
  126.         dingwei_data[5]=((GpsInfo.UtcTime[0]-0x30)*10+(GpsInfo.UtcTime[1]-0x30)+8);//時
  127.         dingwei_data[6]=((GpsInfo.UtcTime[2]-0x30)*10+(GpsInfo.UtcTime[3]-0x30));//分
  128.         dingwei_data[7]=((GpsInfo.UtcTime[4]-0x30)*10+(GpsInfo.UtcTime[5]-0x30));//秒
  129.         if(GpsInfo.Statue==0x56)        //狀態為“V”未定位
  130.         {
  131.                 dingwei_data[18]=dingwei_data[18]&0xEF;
  132.         }
  133.         if(GpsInfo.Statue==0x41)        //狀態為“A”已定位
  134.         {
  135.                 dingwei_data[18]=dingwei_data[18]|0x10;
  136.         }
  137.         dingwei_data[18]=dingwei_data[18]|0x20;//實時定位

  138. }
  139. float LatToRad(u8 *Lat)
  140. {
  141.          float Rad;
  142.         u16 Data;
  143.         Data=Lat[0]*10+Lat[1];
  144.         Rad=Lat[2]*10+Lat[3]+Lat[5]*0.1+Lat[6]*0.01+Lat[7]*0.001+Lat[8]*0.0001;
  145.         Rad=Rad/60;
  146.         Rad=Rad+Data;
  147.         return Rad;
  148.                                 
  149. }
  150. float LonToRad(u8 *Lon)
  151. {
  152.          float Rad;
  153.         u16 Data;
  154.         Data=Lon[0]*100+Lon[1]*10+Lon[2];
  155.         Rad=Lon[3]*10+Lon[4]+Lon[6]*0.1+Lon[7]*0.01+Lon[8]*0.001+Lon[9]*0.0001;
  156.         Rad=Rad/60;
  157.         Rad=Rad+Data;
  158.         return Rad;
  159. }
  160. ……………………

  161. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
  1. /*************************************
  2.         GPS解碼顯示程序,
  3. ***************************************/
  4. #include<reg52.h>
  5. #include "1602.h"
  6. //#include"math.h"
  7. //#include <stdlib.h>

  8. sbit GPS_SPD=P1^1;                                //GPS模塊速率設置
  9. sbit KEY1=P1^0;                        //顯示內容分屏切換,(T0,T1引腳 的第二功能為計數器。)
  10. char code TIME_AREA= 8;                //時區
  11. /***************************************
  12.        這是做的部分更改
  13. ************************************/
  14. unsigned long maxspeed,b;
  15. unsigned int count=0;
  16. unsigned int a[5];
  17. unsigned char hspeed[5];
  18. unsigned int dot_count;        //小數點計數器
  19. //unsigned char x;
  20. //GPS數據存儲數組
  21. unsigned char JD[10];                //經度
  22. unsigned char JD_a;                //經度方向
  23. unsigned char WD[9];                //緯度
  24. unsigned char WD_a;                //緯度方向
  25. unsigned char date[6];                //日期
  26. unsigned char time[6];                //時間
  27. unsigned char speed[5]={'0','0','0','.','0'};                //速度
  28. unsigned char high[6];                //高度
  29. unsigned char angle[5]={'0','0','0','0','0'};                //方位角
  30. unsigned char use_sat[2];        //使用的衛星數
  31. unsigned char total_sat[2];        //天空中總衛星數
  32. unsigned char lock;                        //定位狀態

  33. //串口中斷需要的變量
  34. unsigned char seg_count;        //逗號計數器
  35. unsigned char byte_count;        //位數計數器
  36. unsigned char cmd_number;        //命令類型
  37. unsigned char mode;                        //0:結束模式,1:命令模式,2:數據模式
  38. unsigned char buf_full;                //1:整句接收完成,相應數據有效。0:緩存數據無效。
  39. unsigned char cmd[5];                //命令類型存儲數組

  40. //顯示需要的變量
  41. unsigned int dsp_count;                //刷新次數計數器
  42. //unsigned char time_count;
  43. bit page;

  44. void sys_init(void);
  45. bit chk_key(void);

  46. main()
  47. {
  48.         unsigned char i;
  49.         char Bhour;
  50.         sys_init();

  51.         lock=1;
  52.         use_sat[0]='0';
  53.         use_sat[1]='0';
  54.         total_sat[0]='0';
  55.         total_sat[1]='0';

  56.         while(1){
  57.             if(buf_full==0)                                //無GPS信號時
  58.                 {
  59.                         dsp_count++;
  60.                         if(dsp_count>=65000){
  61.                                 LCD_cls();                        //清屏
  62.                                 LCD_write_string(0,0,"No GPS connect..");
  63.                                 LCD_write_string(0,1,"Please Check..");
  64.                                 while(buf_full==0);
  65.                                 LCD_cls();        
  66.                                 dsp_count=0;
  67.                         }
  68.                 }
  69.                 else{                                                //有GPS信號時
  70. /*************************************
  71.         最大速度處理
  72. *************************************/
  73.                      dot_count=0;
  74.                                           b=0;
  75.                       for(i=0;i<5;i++)
  76.                                           {
  77.                                               if(speed[i]!='.')
  78.                                                      dot_count++;
  79.                                                   else

  80.                                                      break ;
  81.                                           }
  82.                                           switch(dot_count)
  83.                                           {
  84.                                              
  85.                                                  case 1:
  86.                                                       b=((speed[0]-'0')*10+(speed[2]-'0'))*1.852;
  87.                                                           break;
  88.                                                  case 2:
  89.                                                       b=((speed[0]-'0')*100+(speed[1]-'0')*10+(speed[4]-'0'))*1.852;
  90.                                                           break;
  91.                                                  case 3:
  92.                                                       b=((speed[0]-'0')*1000+(speed[1]-'0')*100+(speed[2]-'0')*10+(speed[4]-'0'))*1.852;
  93.                                                           break;
  94.                                                 
  95.                                            }
  96.                       if(b>maxspeed)
  97.                                           {
  98.                                             maxspeed=b;
  99.                                       }


  100. /*************************************
  101.         最大速度處理
  102. *************************************/



  103.             

  104.                         if(chk_key()){                                //檢測到按鍵切換顯示
  105.                                 page=!page;
  106.                                 LCD_cls();
  107.                         }

  108.                         if(!page){                                                //頁面1


  109.                                           
  110.                                 if(buf_full|0x01){                                //GGA語句
  111.                                         if(lock==0){                                        //如果未定位
  112.                                                 LCD_write_string(0,0,"*---.--.----  ");
  113.                                                 LCD_write_string(0,1,"* --.--.----  ");                                       
  114.                                         }else{                                                        //如果已定位


  115.                                             LCD_write_char(0,0,JD_a);                        //顯示經度
  116.                                             for(i=0;i<3;i++)
  117.                                                 {
  118.                                                   LCD_write_char(i+1,0,JD[i]);
  119.                                                   }
  120.                         LCD_write_char(4,0,'.');
  121.                         for(i=3;i<10;i++)
  122.                                                 {
  123.                                                   LCD_write_char(i+2,0,JD[i]);
  124.                                                   }

  125.                                                 LCD_write_char(0,1,WD_a);                        //顯示緯度
  126.                                                 LCD_write_char(1,1,' ');
  127.                                             for(i=0;i<2;i++)
  128.                                                 {
  129.                                                         LCD_write_char(i+2,1,WD[i]);
  130.                                                 }
  131.                                                 LCD_write_char(4,1,'.');

  132.                         for(i=2;i<9;i++)
  133.                                                 {
  134.                                                         LCD_write_char(i+3,1,WD[i]);
  135.                                                 }
  136.                                                                                                 
  137.                                                 }
  138.                                         LCD_write_char(14,1,use_sat[0]);                //顯示接收衛星數
  139.                                         LCD_write_char(15,1,use_sat[1]);
  140.                                         buf_full&=~0x01;
  141.                                         dsp_count=0;
  142.                         }
  143.                                 if(buf_full|0x02){                                //GSV語句
  144.                                         LCD_write_char(14,1,total_sat[0]);
  145.                                         LCD_write_char(15,1,total_sat[1]);
  146.                                         buf_full&=~0x02;
  147.                                         dsp_count=0;
  148.                                 }
  149.                                 if(buf_full|0x04){
  150.                                         if(lock==0){                                        //如果未定位
  151.                                                 LCD_write_string(0,0,"*---.--.----  ");
  152.                                                 LCD_write_string(0,1,"* --.--.----  ");                                       
  153.                                         }else{                                                        //如果已定位



  154.                                 LCD_write_char(0,0,JD_a);                        //顯示經度
  155.                                     for(i=0;i<3;i++)
  156.                                         {
  157.                                           LCD_write_char(i+1,0,JD[i]);
  158.                                           }
  159.                     LCD_write_char(4,0,'.');
  160.                     for(i=3;i<10;i++)
  161.                                         {
  162.                                           LCD_write_char(i+2,0,JD[i]);
  163.                                           }
  164.                                         LCD_write_char(0,1,WD_a);                        //顯示緯度
  165.                                 
  166.                                         LCD_write_char(1,1,' ');
  167.                         for(i=0;i<2;i++)
  168.                                         {
  169.                                                 LCD_write_char(i+2,1,WD[i]);
  170.                                         }
  171.                                         LCD_write_char(4,1,'.');

  172.                     for(i=2;i<9;i++)
  173.                                         {
  174.                                                 LCD_write_char(i+3,1,WD[i]);
  175.                                         }

  176.                                      }
  177.                                         LCD_write_char(14,0,use_sat[0]);                //顯示接收衛星數
  178.                                         LCD_write_char(15,0,use_sat[1]);
  179.                                         buf_full&=~0x04;
  180.                                         dsp_count=0;
  181.                                 }
  182.                         }
  183.                         else{                                                        //頁面2
  184.                                 if(buf_full|0x01){                                //GGA語句
  185.                                         buf_full&=~0x01;
  186.                                         dsp_count=0;
  187.                                 }
  188.                                 if(buf_full|0x02){
  189.                                         buf_full&=~0x02;
  190.                                         dsp_count=0;
  191.                                 }
  192.                                 if(buf_full|0x04){                                //RMC語句
  193.                                         Bhour=((time[0]-0x30)*10+time[1]-0x30)+TIME_AREA;
  194.                                         if(Bhour>=24){
  195.                                                 Bhour-=24;
  196.                                         }else if(Bhour<0){
  197.                                                 Bhour+=24;
  198.                                         }

  199.                                         LCD_write_char(0,1,date[4]);
  200.                                         LCD_write_char(1,1,date[5]);
  201.                                         LCD_write_char(2,1,date[2]);
  202.                                         LCD_write_char(3,1,date[3]);
  203.                                         LCD_write_char(4,1,date[0]);
  204.                                         LCD_write_char(5,1,date[1]);

  205.                                         LCD_write_char(8,1,Bhour/10+0x30);
  206.                                         LCD_write_char(9,1,Bhour%10+0x30);
  207.                                         LCD_write_char(10,1,':');
  208.                                         LCD_write_char(11,1,time[2]);
  209.                                         LCD_write_char(12,1,time[3]);
  210.                                         LCD_write_char(13,1,':');
  211.                                         LCD_write_char(14,1,time[4]);
  212.                                         LCD_write_char(15,1,time[5]);

  213.                                         LCD_write_string(5,0,"knot A");         

  214.                                         if(lock=='0'){                                        //如果未定位
  215.                                                 LCD_write_string(0,0,"---.-");
  216.                                                 LCD_write_string(11,0,"---.-");
  217.                                         }else{                                                      //已經定位,在此處做的改動。
  218. /*******************************************************************************/


  219.                      
  220.                                                         
  221.                            if(count<10)
  222.                                                    {
  223.                            
  224.                             for(i=0;i<5;i++)
  225.                                                         {                        
  226.                                                         LCD_write_char(i,0,speed[i]);//knot顯示
  227.                                                         }
  228.                                                         count++;
  229.                                                   }
  230.                                                   else
  231.                                                   {
  232.                                                     if(count>15)
  233.                                                     {  
  234.                                                            count=0;
  235.                                                         }

  236.                                   hspeed[0]=maxspeed/1000+0x30;                     //把小數轉成字符數組
  237.                                                           hspeed[1]=(maxspeed/100)%10+0x30;
  238.                                                           hspeed[2]=(maxspeed/10)%10+0x30;
  239.                                                           hspeed[3]='.';
  240.                                                           hspeed[4]= maxspeed%10+0x30;

  241.                                                      
  242.                                                     count++;
  243.                                                         LCD_write_string(5,0,"Km/h A");
  244.                             LCD_write_char(0,0,hspeed[0]);
  245.                                                         LCD_write_char(1,0,hspeed[1]);        
  246.                                                         LCD_write_char(2,0,hspeed[2]);
  247.                                                         LCD_write_char(3,0,hspeed[3]);
  248.                                                         LCD_write_char(4,0,hspeed[4]);        //最大速度顯  */
  249.                                                 }
  250.                         
  251. /*******************************************************************************/
  252.                                                          for(i=0;i<5;i++){
  253.                                                                 LCD_write_char(11+i,0,angle[i]);
  254.                                                 }
  255.                                         }
  256.                                         buf_full&=~0x04;
  257.                                         dsp_count=0;
  258.                                 }
  259.                         }

  260.                 }
  261.         }
  262. }

  263. bit chk_key(void)
  264. {
  265.         if(!KEY1){
  266.                 delayms(10);
  267.                 if(!KEY1){
  268.                         while(!KEY1);
  269.                         delayms(10);
  270.                         return(1);
  271.                 }
  272.         }
  273.     LCD_cls();                        //清屏
  274.         return(0);
  275. }

  276. //系統初始化
  277. void sys_init() {
  278.         unsigned char i;
  279.         SCON = 0x50;         /* SCON: mode 1, 8-bit UART, enable rcvr */
  280.         TMOD = 0x21;         /* TMOD: timer 1, mode 2, 8-bit reload */
  281.         if(GPS_SPD){
  282.                 TH1 = 0xfa;                 /* TH1: reload value for 9600 baud @ 11.059MHz */
  283.         }else{
  284.                 TH1 = 0xfd;                        /* TH1: reload value for 4800 baud @ 11.059MHz */
  285.         }
  286.         TR1 = 1;                 /* TR1: timer 1 run */
  287.         LCD_init(8);                //初始化LCD
  288.         LCD_write_string(0,0," GPS SIRF II 2 ");
  289.         LCD_write_string(0,1," 11-11-23 1342 ");



  290.         
  291.         for(i=1;i<4;i++){
  292.                 delayms(250);
  293.         }
  294.         //LCD_cls();
  295.         IE=0x90;                        //開總中斷、串口中斷
  296. }

  297. //串口接收中斷
  298. void uart(void) interrupt 4
  299. {
  300.         unsigned char tmp;
  301.         if(RI){
  302.                 tmp=SBUF;
  303.                 switch(tmp){
  304.                         case
  305.                                 cmd_number=0;                //命令類型清空
  306.                                 mode=1;                                //接收命令模式
  307.                                 byte_count=0;                //接收位數清空
  308.                                 break;
  309.                         case ',':
  310.                                 seg_count++;                //逗號計數加1
  311.                                 byte_count=0;
  312.                                 break;
  313.                         case '*':
  314.                                 switch(cmd_number){
  315.                                         case 1:
  316.                                                 buf_full|=0x01;
  317.                                                 break;
  318.                                         case 2:
  319.                                                 buf_full|=0x02;
  320.                                                 break;
  321.                                         case 3:
  322.                                                 buf_full|=0x04;
  323.                                                 break;
  324.                                 }
  325.                                 mode=0;
  326.                                 break;
  327.                         default:
  328.                                 if(mode==1){
  329.                                         //命令種類判斷

  330.                                         cmd[byte_count]=tmp;                        //接收字符放入類型緩存
  331.                                         if(byte_count>=4){                                //如果類型數據接收完畢,判斷類型
  332.                                                 if(cmd[0]=='G'){
  333.                                                         if(cmd[1]=='P'){
  334.                                                                 if(cmd[2]=='G'){
  335.                                                                         if(cmd[3]=='G'){
  336.                                                                                 if(cmd[4]=='A'){
  337.                                                                                         cmd_number=1;
  338.                                                                                         mode=2;
  339.                                                                                         seg_count=0;
  340.                                                                                         byte_count=0;
  341.                                                                                 }
  342.                                                                         }
  343.                                                                         else if(cmd[3]=='S'){
  344.                                                                                 if(cmd[4]=='V'){
  345.                                                                                         cmd_number=2;
  346.                                                                                         mode=2;
  347.                                                                                         seg_count=0;
  348.                                                                                         byte_count=0;
  349.                                                                                 }
  350.                                                                         }
  351.                                                                 }
  352.                                                                 else if(cmd[2]=='R'){
  353.                                                                         if(cmd[3]=='M'){
  354.                                                                                 if(cmd[4]=='C'){
  355.                                                                                         cmd_number=3;
  356.                                                                                         mode=2;
  357.                                                                                         seg_count=0;
  358.                                                                                         byte_count=0;
  359.                                                                                 }
  360.                                                                         }
  361.                                                                 }
  362.                                                         }
  363.                                                 }
  364.                                         }
  365.                                 }
  366.                                 else if(mode==2){
  367.                                         //接收數據處理
  368.                                         switch (cmd_number){
  369.                                                 case 1:                                //類型1數據接收。GPGGA
  370.                                                         switch(seg_count){
  371.                                                                 case 2:                //緯度處理
  372.                                                                         if(byte_count<9){
  373.                                                                                 WD[byte_count]=tmp;
  374.                                                                         }
  375.                                                                         break;
  376.                                                                 case 3:                //緯度方向處理
  377.                                                                         if(byte_count<1){
  378.                                                                                 WD_a=tmp;
  379.                                                                         }
  380.                                                                         break;
  381.                                                                 case 4:                //經度處理
  382.                                                                         if(byte_count<10){
  383.                                                                                 JD[byte_count]=tmp;
  384.                                                                         }
  385.                                                                         break;
  386.                                                                 case 5:                //經度方向處理
  387.                                                                         if(byte_count<1){
  388.                                                                                 JD_a=tmp;
  389.                                                                         }
  390.                                                                         break;
  391.                                                                 case 6:                //定位判斷
  392.                                                                         if(byte_count<1){
  393.                                                                                 lock=tmp;
  394.                                                                         }
  395.                                                                         break;
  396.                                                                 case 7:                //定位使用的衛星數
  397.                                                                         if(byte_count<2){
  398.                                                                                 use_sat[byte_count]=tmp;
  399.                                                                         }
  400.                                                                         break;
  401.                                                                 case 9:                //高度處理
  402.                                                                         if(byte_count<6){
  403.                                                                                 high[byte_count]=tmp;
  404.                                                                         }
  405.                                                                         break;
  406.                                                         }
  407.                                                         break;
  408.                                                 case 2:                                //類型2數據接收。GPGSV
  409.                                                         switch(seg_count){
  410.                                                                 case 3:                //天空中的衛星總數
  411.                                                                         if(byte_count<2){
  412.                                                                                 total_sat[byte_count]=tmp;
  413.                                                                         }
  414.                                                                         break;
  415.                                                         }
  416.                                                         break;
  417.                                                 case 3:                                //類型3數據接收。GPRMC
  418.                                                         switch(seg_count){
  419.                                                                 case 1:                //時間處理
  420.                                                                         if(byte_count<6){                                
  421.                                                                                 time[byte_count]=tmp;        
  422.                                                                         }
  423.                                                                         break;
  424.                                                                 case 2:                //定位判斷                                                
  425. ……………………

  426. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼


所有資料51hei提供下載:
51黑論壇_GPS.zip (92.47 KB, 下載次數: 174)
回復

使用道具 舉報

ID:331578 發表于 2018-5-29 11:29 | 顯示全部樓層
咋不顯示
回復

使用道具 舉報

ID:320862 發表于 2018-6-1 16:26 | 顯示全部樓層
沒有GPS連接  請重試 怎么辦
回復

使用道具 舉報

ID:416805 發表于 2018-11-7 10:12 | 顯示全部樓層
worlcat 發表于 2018-6-1 16:26
沒有GPS連接  請重試 怎么辦

請問解決了嗎?我也是這個問題
回復

使用道具 舉報

ID:481858 發表于 2019-3-9 15:36 來自手機 | 顯示全部樓層
worlcat 發表于 2018-6-1 16:26
沒有GPS連接  請重試 怎么辦

強大,學習中
回復

使用道具 舉報

ID:417092 發表于 2019-4-24 18:48 | 顯示全部樓層
電路圖上是AT89C52.
程序中怎么包函STM32 103.h了呀。
回復

使用道具 舉報

ID:471909 發表于 2019-5-4 13:42 | 顯示全部樓層
整哈需要!
回復

使用道具 舉報

ID:471909 發表于 2019-5-4 14:36 | 顯示全部樓層
頂一下 正好需要
回復

使用道具 舉報

ID:523957 發表于 2019-5-15 14:05 | 顯示全部樓層
程序有問題 我用虛擬串口和虛擬gps還是不能顯示 顯示檢測不到GPS連接
回復

使用道具 舉報

ID:539393 發表于 2019-5-15 22:16 | 顯示全部樓層
萬分感謝
回復

使用道具 舉報

ID:720182 發表于 2020-4-18 18:19 | 顯示全部樓層
多謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年人在线视频 | 精品视频久久久久久 | 99热精品6 | 网址黄 | 婷婷色成人 | 99reav | 中文字幕亚洲欧美 | h视频在线观看免费 | 日本超碰| 特级做a爱片免费69 精品国产鲁一鲁一区二区张丽 | 国产欧美视频一区二区三区 | 亚洲一区视频在线 | 高清亚洲 | 久久宗合色 | 黄免费观看视频 | 日韩综合在线 | 中国一级大毛片 | 国产精品一区二区电影 | 99视频免费在线观看 | 一区二区av | 久久国产精品一区二区三区 | 国产成人精品综合 | 99精品网站 | 欧美一区二区三区在线看 | 日韩a在线| 国产不卡在线播放 | 日韩色在线 | 日日夜夜av | 久久午夜国产精品www忘忧草 | 欧美性久久久 | 成人一区二区电影 | 亚洲永久| 久久久久久久久久久爱 | 九九在线视频 | 鲁大师一区影视 | 欧美激情国产精品 | 国产精品国产a | 欧美精品被 | 国产精品成av人在线视午夜片 | 欧美成年黄网站色视频 | 超碰网址 |