日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2024年11月07日(星期四)

正在發(fā)生

2019年11月07日 | 2440裸機編程之十二 GPS

發(fā)布者:爐火旁的Yye 來源: 51hei關(guān)鍵字:裸機編程  GPS 手機看文章 掃描二維碼
隨時隨地手機看文章

全球衛(wèi)星定位系統(tǒng)實際上是由24 顆衛(wèi)星所組成,其中有3 顆為備用衛(wèi)星,這些衛(wèi)星分布于距地表20,200 公里的上空,而且分屬于6 個軌道面;衛(wèi)星軌道面傾斜角為55 度﹐提供全球全天候﹐每秒一次﹐持續(xù)不斷的定位訊號。這些衛(wèi)星每11 小時58 分環(huán)繞地球一次,即每天繞過您的頭頂二次,就像是月球一樣不停地繞著地球旋轉(zhuǎn),其速度約每秒1.8 哩。這些衛(wèi)星需要地面管制站隨時加以監(jiān)控是否GPS 衛(wèi)星在其正確的軌道上及正常運作,另外監(jiān)控中心可上傳資料給衛(wèi)星,衛(wèi)星再將這些信息下傳給GPS 使用者使用。地面共有五個監(jiān)控中心,四個上傳資料站及一個控制中心,這些控制站以緯度來劃分其所控制的衛(wèi)星。在概念上﹐GPS 是代表著整個系統(tǒng)﹐包括天空上的衛(wèi)星、地面控制站及GPS 接收機。不過一般而言﹐GPS 即意指一個GPS 接收機﹐這是因為我們在使用上多半只會接觸GPS 接收機的緣故。一般所使用之GPS 接收機在任何時刻接收到4 顆或更多的衛(wèi)星。


簡單的說GPS 如何運作:每一顆衛(wèi)星會告訴您使用的接收機三件事,我是第幾號衛(wèi)星,我現(xiàn)位置在那里,我什么時候送這訊息給您。當您的GPS 接收機接收到這些資料后會將星歷資料及Almanac 存起來使用,這些資料也用做修正GPS 接收機上的時間。GPS 接收機比較每一衛(wèi)星訊號接收到的時間及本身接收機的時間的不同,而計算出每一衛(wèi)星道接收機的距離。接收機若在接收到更多衛(wèi)星時,它可利用三角公式計算出接收機所在位置。三顆衛(wèi)星可做所謂2D 定位(經(jīng)度及緯度),四顆或更多衛(wèi)星可做所謂3D 定位(經(jīng)度、緯度及高度)。接收機繼續(xù)不段地更新您的位置,所以它可計算出您的移動方向及速度。


GPRMC
  推薦定位信息(GPRMC) 
例:$GPRMC,154717.000, A ,3906.1439, N ,11720.8569, E ,0.00,331.02,050611,    ,    ,   A*6B
  $GPRMC,   <1>    ,<2>,    <3>  ,<4>,    <5>   ,<6>, <7>,  <8> ,  <9> ,<10>,<11>,<12>*hh 
  <1> UTC時間,hhmmss.sss(時分秒.毫秒)格式 
  <2> 定位狀態(tài),A=有效定位,V=無效定位 
  <3> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸) 
  <4> 緯度半球N(北半球)或S(南半球) 
  <5> 經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸) 
  <6> 經(jīng)度半球E(東經(jīng))或W(西經(jīng)) 
  <7> 地面速率(000.0~999.9節(jié),前面的0也將被傳輸) 
  <8> 地面航向(000.0~359.9度,以正北為參考基準,前面的0也將被傳輸) 
  <9> UTC日期,ddmmyy(日月年)格式 
  <10> 磁偏角(000.0~180.0度,前面的0也將被傳輸) 
  <11> 磁偏角方向,E(東)或W(西) 
  <12> 模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)


GPGGA
GPS固定數(shù)據(jù)輸出語句($GPGGA) 
這是一幀GPS定位的主要數(shù)據(jù),也是使用最廣的數(shù)據(jù)。 


  $GPGGA 語句包括17個字段:語句標識頭,世界時間,緯度,緯度半球,經(jīng)度,經(jīng)度半球,定位質(zhì)量指示,使用衛(wèi)星數(shù)量,水平精確度,海拔高度,高度單位,大地水準面高度,高度單位,差分GPS數(shù)據(jù)期限,差分參考基站標號,校驗和結(jié)束標記(用回車符和換行符),分別用14個逗號進行分隔。該數(shù)據(jù)幀的結(jié)構(gòu)及各字段釋義如下:
  
例:$GPGGA,154717.000,3906.1439, N ,11720.8569, E , 1 , 05,1.6, 23.2,M,-2.3,M,    , 0000*74
其標準格式為:$GPGGA,   (1)   ,    (2)  ,(3),    (4)   ,(5),(6),(7),(8),  (9),M,(10),M,(11),(12) *hh(CR)(LF)

起始引導(dǎo)符及語句格式說明(本句為GPS定位數(shù)據(jù)); 
  <1> UTC時間,格式為hhmmss.sss; 
  <2> 緯度,格式為ddmm.mmmm(第一位是零也將傳送); 
  <3> 緯度半球,N或S(北緯或南緯) 
  <4> 經(jīng)度,格式為dddmm.mmmm(第一位零也將傳送); 
  <5> 經(jīng)度半球,E或W(東經(jīng)或西經(jīng)) 
  <6> GPS狀態(tài), 0未定位, 1非差分定位, 2差分定位, 3無效PPS, 6正在估算 
  <7> 使用衛(wèi)星數(shù)量,從00到12(第一個零也將傳送) 
  <8> 水平精確度,0.5到99.9 
  <9> 天線離海平面的高度,-9999.9到9999.9米 
  M 指單位米 
  <10> 大地水準面高度,-9999.9到9999.9米 
  M 指單位米 
  <11> 差分GPS數(shù)據(jù)期限(RTCM SC-104),最后設(shè)立RTCM傳送的秒數(shù)量,如不是差分定位則為空 
  <12> 差分參考基站標號,從0000到1023(首位0也將傳送)。 
  * 語句結(jié)束標志符 
  xx 從$開始到*之間的所有ASCII碼的異或校驗和 
   回車 
   換行



GPGSA
  $GPGSA : GPS DOP and Active Satellites(GSA)當前衛(wèi)星信息 
例:$GPGSA,A,3,28,02,10,23,04,,,,,,,,2.4,1.6,1.8*36

    字段1:定位模式,A=自動手動2D/3D,M=手動2D/3D 
  字段2:定位類型,1=未定位,2=2D定位,3=3D定位 
  字段3:PRN碼(偽隨機噪聲碼),第1信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段4:PRN碼(偽隨機噪聲碼),第2信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段5:PRN碼(偽隨機噪聲碼),第3信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段6:PRN碼(偽隨機噪聲碼),第4信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段7:PRN碼(偽隨機噪聲碼),第5信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段8:PRN碼(偽隨機噪聲碼),第6信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段9:PRN碼(偽隨機噪聲碼),第7信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段10:PRN碼(偽隨機噪聲碼),第8信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段11:PRN碼(偽隨機噪聲碼),第9信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段12:PRN碼(偽隨機噪聲碼),第10信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段13:PRN碼(偽隨機噪聲碼),第11信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段14:PRN碼(偽隨機噪聲碼),第12信道正在使用的衛(wèi)星PRN碼編號(00)(前導(dǎo)位數(shù)不足則補0) 
  字段15:PDOP綜合位置精度因子(0.5 - 99.9) 
  字段16:HDOP水平精度因子(0.5 - 99.9) 
  字段17:VDOP垂直精度因子(0.5 - 99.9) 
  字段18:校驗值



GPGSV
  可視衛(wèi)星狀態(tài)輸出語句($GPGSV) 
  例:       $GPGSV,  3 ,  1 ,  12,  04,  51, 261,  44,  28,45,179,27,10,18,192,26,02, 12,250, 44*7C 
  標準格式: $GPGSV,(1),(2),(3),(4),(5),(6),(7),       ………………       (4),(5),(6),(7)*hh(CR)(LF) 
  各部分含義為: 
  (1)總的GSV語句電文數(shù);2; 
  (2)當前GSV語句號:1; 
  (3)可視衛(wèi)星總數(shù):08; 
  (4)PRN碼(偽隨機噪聲碼) 也可以認為是衛(wèi)星編號 
  (5)仰角(00~90度):33度; 
  (6)方位角(000~359度):240度; 
  (7)信噪比(00~99dB):45dB(后面依次為第10,16,17號衛(wèi)星的信息); 
  *總和校驗域;  
  hh 總和校驗數(shù):78; 
  (CR)(LF)回車,換行。 
  注:每條語句最多包括四顆衛(wèi)星的信息,每顆衛(wèi)星的信息有四個數(shù)據(jù)項,即:  
  (4)-衛(wèi)星號,(5)-仰角,(6)-方位角,(7)-信噪比。


一、GPS接PC機,用超級終端接收信息


圖中只是示意,天線要接到戶外,否則信號很難接收




二、2440的串口1接GPS模塊


程序如下:
//////////////////////////////////////////////////////////////////////////////////////////////
#define GLOBAL_CLK  1
/*
*********************************************************
*        頭文件
*********************************************************
*/
#include
#include
#include

#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"


/*
*********************************************************
*         常量
*********************************************************
*/

/*
*********************************************************
*         變量
*********************************************************
*/

int isdigit(char  c)
{
if(c>='0' && c <='9') return 1;
else return 0;
}

int my_atoi(char * pzNum)    //把字符串str轉(zhuǎn)換成int類型
{
int nLen;
int nIndex;
int bFlag;
int nRt;
if (pzNum == NULL)
  return 0;

nLen = strlen(pzNum);
if (nLen <= 0)
  return 0;

nIndex = 0; 
bFlag = TRUE;
if (!isdigit(pzNum[0]))
{
  if (pzNum[0] == '-')
   bFlag = FALSE;
  else if (pzNum[0] == '+')
   bFlag = TRUE;
  else
      return 0;  
  nIndex ++;
}
nRt = 0;
for (; nIndex < nLen; nIndex++)
{
  if (!isdigit(pzNum[nIndex]))
   break;
  nRt = nRt * 10 + (pzNum[nIndex]-'0');
}
if (!bFlag)
  nRt = -nRt;

return nRt;
}


void Main(void)
{     
    int i;
    U8 key;
U32 mpll_val = 0 ;
char Buffer[256];
char buf[20];
char *p;

    Port_Init();  //端口初始化
    Isr_Init();   //中斷初始化
key = 14;
mpll_val = (92<<12)|(1<<4)|(1);
//init FCLK=400M, so change MPLL first
ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);
ChangeClockDivider(key, 12);
cal_cpu_bus_clk();
    
    Uart_Init(0,0,115200);  //串口初始化 波特率為115200
    Uart_Init(0,1,9600);
    Uart_Select(0);  //選者串口0

Clk0_Disable();
Clk1_Disable();

Uart_Printf("n======  GPS Test program start ======n");
while(1)
{
  i=0;
  Uart_Select(1);
  Uart_GetString(Buffer);                                      //讀取一段信息
  Uart_Select(0);
  p = strtok(Buffer+1, ",");                                   //將字符串 Buffer+1  以","為界,讀取第一個單詞,
     if (strcmp(p,"$GPRMC") == 0)                                 //找到"$GPRMC"
     {
      Uart_Printf("%sn", p); 
      p = strtok(NULL, ",");                                   //得到協(xié)調(diào)世界時間

      sprintf(buf,"%c%c",p[0],p[1]);
      Uart_Printf("Current Time: %2d:",(my_atoi(buf)+8)%24);   //顯示小時: 協(xié)調(diào)世界時間+8  轉(zhuǎn)換為北京時間
      Uart_Printf("%c%c:%c%cn",p[2],p[3],p[4],p[5]);          //顯示分 秒
      
      p = strtok(NULL, ",");                                   //得到有效性
      if(*p == 'A') Uart_Printf("State: Data valid.n");
      else Uart_Printf("State: Date no valid!!n");
      
      p = strtok(NULL, ",");                                   //得到緯度值
      Uart_Printf("latitude(WGS-84): %s",p);
      p = strtok(NULL,",");                                    //北緯還是南緯
      Uart_Printf("%sn",p);
      
      p = strtok(NULL, ",");                                   //得到經(jīng)度值
      Uart_Printf("longitude(WGS-84): %s",p);
      p = strtok(NULL,",");                                    //東經(jīng)還是西經(jīng)
      Uart_Printf("%sn",p);
      
      p = strtok(NULL,",");                                    //速度
      Uart_Printf("speed: %sn",p);
      
      p = strtok(NULL,",");                                    //方位
      Uart_Printf("Direction: %sn",p);
      
      p = strtok(NULL,",");                                    //日期
      Uart_Printf("Date: %c%c-%c%c-%c%cn",p[0],p[1],p[2],p[3],p[4],p[5]);
     }

[1] [2]
關(guān)鍵字:裸機編程  GPS 引用地址:2440裸機編程之十二 GPS

上一篇:對比stm32,arm9研究方向的猜想
下一篇:對于51單片機和arm9開發(fā)板串口通信問題的分析

推薦閱讀

MEMS是一項革命性的新技術(shù),廣泛應(yīng)用于高新技術(shù)產(chǎn)業(yè),是一項關(guān)系到國家的科技發(fā)展、經(jīng)濟繁榮和國防安全的關(guān)鍵技術(shù)。如今隨著移動物聯(lián)網(wǎng),通信的飛速發(fā)展正在為MEMS市場提供強勁增長動力,受益于MEMS器件小型化的特性,MEMS振蕩器已經(jīng)廣泛應(yīng)用于多個領(lǐng)域。如今,隨著5G技術(shù)日以來近,MEMS振蕩器也迎來發(fā)展的歷史機遇。 為助力5G基礎(chǔ)設(shè)置建設(shè),硅MEMS計時領(lǐng)...
環(huán)境X IDE V2.35CPICKIT3一個按鍵切換兩個繼電器單片機源程序如下:#include<pic.h>#include <xc.h>#pragma config WDTE = OFF // Watchdog Timer (WDT disabled)#pragma config CP = OFF // Code Protect (Code protection off)#pragma config MCLRE = OFF // Master Clear Enable (GP3/MCLR...
近日中興通訊推出了 Blade 20 5G,這款手機在設(shè)計方面與中興 Blade A7s 2020 4G 非常相似,Blade 20 5G 看起來像是 A7s 的 5G 版本。Blade 20 5G 配備一塊 6.52 英寸的 IPS LCD 水滴屏,720 x 1600 像素的 HD + 分辨率。它有一個 800 萬像素的前置攝像頭。背面具有三攝像頭系統(tǒng),包括一個具有 120°視野的 1600 萬像素...
擺脫芯片供應(yīng)短缺問題 雙芯片代工策略見效 11月4日,高通股價飆漲逾12%,相較同業(yè),高通在面對芯片更顯得心應(yīng)手,并看好明年業(yè)績將持續(xù)成長。 高通執(zhí)行長 Crisano Amon 于電話會議上表示,預(yù)計12月底供應(yīng)問題將明顯好轉(zhuǎn),明年下半年將有足夠的供應(yīng)滿足需求,預(yù)期 2022財年EPS有望年增20%。 Lily點評:芯片短缺一直影響5G手機的出貨量。高通作為全...

史海拾趣

問答坊 | AI 解惑

哪里有可以輸入文字的電話機?

請問大家:不知道現(xiàn)在是否有可以輸入文字的電話機?在哪里可以找到可以輸入文字的電話機的電路圖?我想要得到一個可以進行文字輸入的電話機的電路圖,和最好是有說明書,我的意思是說:最好能夠把可以輸入文字的電話機的電路圖的各部分也詳細的寫出來(比 ...…

查看全部問答∨

承接電子/電氣類產(chǎn)品開發(fā)(浙江,上海)

本團隊在杭州,面向浙江廣大中小電子企業(yè)承接各類數(shù)字、模擬電路設(shè)計開發(fā)生產(chǎn); 各類單片機、CPLD、FPGA、ARM,DSP產(chǎn)品開發(fā)生產(chǎn); 工業(yè)自動化設(shè)備開發(fā)、技術(shù)革新、改造服務(wù)及技術(shù)支持 成功案例: 工業(yè)類:高壓開關(guān)機械特性測試儀;高壓開關(guān)觸頭 ...…

查看全部問答∨

請問單片機機選擇

要用單片機去控制2個電機運動,比如把物體從A搬運到B。 1. 打算用RS232通信 2. 單片機能輸入數(shù)字,并且能顯示 3. 還要設(shè)計幾個控制電機按鈕 請推薦比較成熟單片機。 謝謝! …

查看全部問答∨

各位大俠,跪求設(shè)置arm進行掉電計時實現(xiàn)方法

各位大俠,我用的是2410開發(fā)板,怎么能實現(xiàn)在掉電的情況下用備用電池計時阿,怎么設(shè)置阿…

查看全部問答∨

請教旋轉(zhuǎn)編碼器輸出形式的不同

初處接觸旋轉(zhuǎn)編碼器這方面的知識,還不是太了解。請問旋轉(zhuǎn)編碼器的幾種不同輸出形式:電壓輸出、集電極輸出、互補輸出和線性驅(qū)動輸出,各有什么區(qū)別?分別應(yīng)用什么場合?麻煩回答,謝謝!…

查看全部問答∨

誰有OrCAD做的STM32F103LQFP100的原理圖封裝

                                 正在計劃應(yīng)用STM32F103VB到新的產(chǎn)品開發(fā)中,時間緊迫.哪位大蝦有OrCAD做的STM32F103VB LQFP-100的原理圖封裝哦 ...…

查看全部問答∨

ucos2移植F28335問題請教

各位大俠,我剛開始接觸ucos移植,在CCS3.3的編譯中,出現(xiàn)了undefined symbol 項錯誤,undefined symbol有 OSCtxSw,OSIntCtxSw等,都是一些在源文件中定義過的,但是為什么還會出現(xiàn)這些呢?搞不明白,還望大家指點。…

查看全部問答∨

怎么樣調(diào)整參數(shù)能使輸出波形呈正弦狀

大家好,請教你們個小問題,如果用UC3842做一個15V5A電源,單端反激的,怎么樣調(diào)整參數(shù)才能使輸出波形呈正弦狀?謝謝!…

查看全部問答∨

TI培訓(xùn)中心上線

資源非常多,包括處理器和信號鏈的內(nèi)容都有,但是都是英文培訓(xùn) …

查看全部問答∨

電源噪聲測量的挑戰(zhàn)及解決之道

當今的計算機、PAD、手機、通信系統(tǒng)設(shè)備等電子產(chǎn)品,處理速度越來越快,運算能力越來越強,其電源的設(shè)計也越來越復(fù)雜。進入21世紀后,芯片的制作工藝由0.18um逐步升級到了95nm、65nm、45nm,晶體管的集成度更高、主頻更高、供電電壓更低,這給產(chǎn)品 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved