欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
stm32庫函數(shù)版本GPS源碼
[打印本頁]
作者:
伐木叮當shine
時間:
2018-2-21 10:02
標題:
stm32庫函數(shù)版本GPS源碼
stm32GPS源碼,可以在上位機上顯示
單片機源程序如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "usmart.h"
#include "gps.h"
#include "usart3.h"
#include "key.h"
#include "string.h"
//ALIENTEK 戰(zhàn)艦V3/精英開發(fā)板擴展實驗16
//ATK-S1216F8 GPS模塊測試實驗
u8 USART1_TX_BUF[USART3_MAX_RECV_LEN]; //串口1,發(fā)送緩存區(qū)
nmea_msg gpsx; //GPS信息
__align(4) u8 dtbuf[50]; //打印緩存器
const u8*fixmode_tbl[4]={"Fail","Fail"," 2D "," 3D "}; //fix mode字符串
//顯示GPS定位信息
void Gps_Msg_Show(void)
{
float tp;
POINT_COLOR=BLUE;
tp=gpsx.longitude;
sprintf((char *)dtbuf,"Longitude:%.5f %1c ",tp/=100000,gpsx.ewhemi); //得到經度字符串
LCD_ShowString(30,120,200,16,16,dtbuf);
tp=gpsx.latitude;
sprintf((char *)dtbuf,"Latitude:%.5f %1c ",tp/=100000,gpsx.nshemi); //得到緯度字符串
LCD_ShowString(30,140,200,16,16,dtbuf);
tp=gpsx.altitude;
sprintf((char *)dtbuf,"Altitude:%.1fm ",tp/=10); //得到高度字符串
LCD_ShowString(30,160,200,16,16,dtbuf);
tp=gpsx.speed;
sprintf((char *)dtbuf,"Speed:%.3fkm/h ",tp/=1000); //得到速度字符串
LCD_ShowString(30,180,200,16,16,dtbuf);
if(gpsx.fixmode<=3) //定位狀態(tài)
{
sprintf((char *)dtbuf,"Fix Mode:%s",fixmode_tbl[gpsx.fixmode]);
LCD_ShowString(30,200,200,16,16,dtbuf);
}
sprintf((char *)dtbuf,"GPS+BD Valid satellite:%02d",gpsx.posslnum); //用于定位的GPS衛(wèi)星數(shù)
LCD_ShowString(30,220,200,16,16,dtbuf);
sprintf((char *)dtbuf,"GPS Visible satellite:%02d",gpsx.svnum%100); //可見GPS衛(wèi)星數(shù)
LCD_ShowString(30,240,200,16,16,dtbuf);
sprintf((char *)dtbuf,"BD Visible satellite:%02d",gpsx.beidou_svnum%100); //可見北斗衛(wèi)星數(shù)
LCD_ShowString(30,260,200,16,16,dtbuf);
sprintf((char *)dtbuf,"UTC Date:%04d/%02d/%02d ",gpsx.utc.year,gpsx.utc.month,gpsx.utc.date); //顯示UTC日期
LCD_ShowString(30,280,200,16,16,dtbuf);
sprintf((char *)dtbuf,"UTC Time:%02d:%02d:%02d ",gpsx.utc.hour,gpsx.utc.min,gpsx.utc.sec); //顯示UTC時間
LCD_ShowString(30,300,200,16,16,dtbuf);
}
int main(void)
{
u16 i,rxlen;
u16 lenx;
u8 key=0XFF;
u8 upload=0;
delay_init(); //延時函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應優(yōu)先級
uart_init(115200); //串口初始化為115200
usmart_dev.init(72); //初始化USMART
LED_Init(); //初始化與LED連接的硬件接口
KEY_Init(); //初始化按鍵
LCD_Init(); //初始化LCD
usart3_init(38400); //初始化串口3
POINT_COLOR=RED;
LCD_ShowString(30,20,200,16,16,"ALIENTEK STM32F1 ^_^");
LCD_ShowString(30,40,200,16,16,"S1216F8 GPS TEST");
LCD_ShowString(30,60,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,80,200,16,16,"KEY0:Upload NMEA Data SW");
LCD_ShowString(30,100,200,16,16,"NMEA Data Upload:OFF");
if(SkyTra_Cfg_Rate(5)!=0) //設置定位信息更新速度為5Hz,順便判斷GPS模塊是否在位.
{
LCD_ShowString(30,120,200,16,16,"SkyTraF8-BD Setting...");
do
{
usart3_init(9600); //初始化串口3波特率為9600
SkyTra_Cfg_Prt(3); //重新設置模塊的波特率為38400
usart3_init(38400); //初始化串口3波特率為38400
key=SkyTra_Cfg_Tp(100000); //脈沖寬度為100ms
}while(SkyTra_Cfg_Rate(5)!=0&&key!=0);//配置SkyTraF8-BD的更新速率為5Hz
LCD_ShowString(30,120,200,16,16,"SkyTraF8-BD Set Done!!");
delay_ms(500);
LCD_Fill(30,120,30+200,120+16,WHITE);//清除顯示
}
while(1)
{
delay_ms(1);
if(USART3_RX_STA&0X8000) //接收到一次數(shù)據(jù)了
{
rxlen=USART3_RX_STA&0X7FFF; //得到數(shù)據(jù)長度
for(i=0;i<rxlen;i++)USART1_TX_BUF[i]=USART3_RX_BUF[i];
USART3_RX_STA=0; //啟動下一次接收
USART1_TX_BUF[i]=0; //自動添加結束符
GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF);//分析字符串
Gps_Msg_Show(); //顯示信息
if(upload)printf("\r\n%s\r\n",USART1_TX_BUF);//發(fā)送接收到的數(shù)據(jù)到串口1
}
key=KEY_Scan(0);
if(key==KEY0_PRES)
{
upload=!upload;
POINT_COLOR=RED;
if(upload)LCD_ShowString(30,100,200,16,16,"NMEA Data Upload:ON ");
else LCD_ShowString(30,100,200,16,16,"NMEA Data Upload:OFF");
}
if((lenx%500)==0)
LED0=!LED0;
lenx++;
}
}
復制代碼
所有資料51hei提供下載:
(庫函數(shù)版本,適合戰(zhàn)艦V3和精英STM32開發(fā)板)擴展實驗16 ATK-S1216F8 GPS模塊實驗.rar
(398.26 KB, 下載次數(shù): 32)
2018-2-21 10:01 上傳
點擊文件名下載附件
stm32GPS源碼
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1