久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32雙串口+MD2503S GPS讀取代碼
[打印本頁]
作者:
火烈大鵬
時間:
2017-6-16 15:03
標題:
STM32雙串口+MD2503S GPS讀取代碼
雙串口+GPS讀取代碼
0.png
(45.51 KB, 下載次數: 59)
下載附件
2017-6-16 19:22 上傳
單片機源程序如下:
#include "sys.h"
#include "usart.h"
#include "usart2.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "string.h"
#include "gps.h"
#include "md2503s.h"
u8 USART1_TX_BUF[USART2_MAX_RECV_LEN]; //串口1,發送緩存區
nmea_msg gpsx; //GPS信息
__align(4) u8 dtbuf[64]; //打印緩存器
const char *fixmode_tbl[4]={"Fail","Fail"," 2D "," 3D "}; //fix mode字符串
//顯示GPS定位信息
void Gps_Msg_Show(void);
int main(void)
{
u16 i,rxlen;
u16 lenx;
Stm32_Clock_Init(9); //系統時鐘設置
delay_init(72); //延時初始化
uart_init(72, 115200); //串口1初始化為115200
USART2_Init(36, 115200); //串口2初始化為115200
LED_Init(); //初始化與LED連接的硬件接口,其中MD2503S模塊PWRKEY開機GPIO的初始化
//先關閉GPS
MD2503S_close_GPS();
//啟動MD2503S模塊
MD2503S_poweron();
//=============================查詢模塊的基本信息==============================
#if 1
//先關閉GPS
MD2503S_close_GPS();
//再查詢版本號
MD2503S_print_version();
//再查詢CSQ
MD2503S_print_CSQ();
#if 0
//設置IMEI號
MD2503S_set_IMEI("863851234568714");
#endif
//查詢IMEI號
MD2503S_print_IMEI();
#endif
//開啟GPS搜星
MD2503S_open_GPS();
//======================切換定位方式================================
#if 1
delay_ms(1000);
/*
enum GNSS_strategy
{
GNSS_GPS,
GNSS_GLONASS,
GNSS_BEIDOU,
GNSS_GPS_BEIDOU,
GNSS_GPS_GLONASS,
GNSS_GPS_BEIDOU_GLONASS,
};
*/
MD2503S_set_GNSS_strategy(GNSS_GPS_BEIDOU);
#endif
while(1)
{
delay_ms(10);
if(is_uart2_recv_data()) //接收到一次數據了
{
rxlen = uart2_recv_datalen(); //得到數據長度
for(i=0;i<rxlen;i++)
USART1_TX_BUF[i] = USART2_RX_BUF[i];
uart2_start_recv(); //啟動下一次接收
USART1_TX_BUF[i] = 0; //自動添加結束符
GPS_Analysis(&gpsx,(u8 *)USART1_TX_BUF); //分析字符串
Gps_Msg_Show(); //顯示信息
//DEBUG("\r\n%s\r\n",USART1_TX_BUF); //發送接收到的數據到串口1
}
if((lenx%500)==0)LED1=!LED1;
lenx++;
}
}
//顯示GPS定位信息
void Gps_Msg_Show(void)
{
float tp;
tp=gpsx.longitude;
sprintf((char *)dtbuf,"Longitude:%.5f %1c ",tp/=100000,gpsx.ewhemi); //得到經度字符串
DEBUG("%s", dtbuf);
tp=gpsx.latitude;
sprintf((char *)dtbuf,"Latitude:%.5f %1c ",tp/=100000,gpsx.nshemi); //得到緯度字符串
DEBUG("%s", dtbuf);
tp=gpsx.altitude;
sprintf((char *)dtbuf,"Altitude:%.1fm ",tp/=10); //得到高度字符串
DEBUG("%s", dtbuf);
tp=gpsx.speed;
sprintf((char *)dtbuf,"Speed:%.3fkm/h ",tp/=1000); //得到速度字符串
DEBUG("%s", dtbuf);
if(gpsx.fixmode <= 3) //定位狀態
{
sprintf((char *)dtbuf,"Fix Mode:%s ",fixmode_tbl[gpsx.fixmode]);
DEBUG("%s", dtbuf);
}
sprintf((char *)dtbuf,"Valid satellite:%02d ",gpsx.posslnum); //用于定位的衛星數
DEBUG("%s", dtbuf);
sprintf((char *)dtbuf,"Visible satellite:%02d ",gpsx.svnum%100); //可見衛星數
DEBUG("%s", dtbuf);
sprintf((char *)dtbuf,"UTC Date:%04d/%02d/%02d ",gpsx.utc.year,gpsx.utc.month,gpsx.utc.date); //顯示UTC日期
DEBUG("%s", dtbuf);
sprintf((char *)dtbuf,"UTC Time:%02d:%02d:%02d ",gpsx.utc.hour,gpsx.utc.min,gpsx.utc.sec); //顯示UTC時間
DEBUG("%s", dtbuf);
DEBUG("\r\n\r\n");
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
04.雙串口 GPS讀取.zip
(545.74 KB, 下載次數: 49)
2017-6-16 15:02 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
icebla
時間:
2017-11-21 11:42
我想問一下 單串口 GPS搜星過程會占用串口 無法形成長連接 請問如何解決
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩欧美中文
|
538精品视频
|
国产成人精品av在线观
|
久久艹av
|
成人毛片在线
|
老司机午夜免费精品视频
|
亚洲成人精品在线观看
|
欧美综合一区二区
|
求av网站
|
亚洲欧美成人
|
国产精品国产精品国产专区不卡
|
成人免费视频大全
|
一个色综合网
|
亚洲天堂免费视频
|
日韩在线视频网站
|
91看片看淫黄大片
|
欧美国产激情
|
精品一区av
|
a视频在线免费观看
|
国产精品国产精品国产专区不卡
|
亚洲精品tv
|
国产又粗又猛又黄又爽无遮挡
|
午夜色婷婷
|
岛国精品在线播放
|
久久久精品国产sm调教
|
一级国产片
|
欧美日韩国产在线
|
日本久久久久久久久
|
日产av在线
|
一区二区三区国产精品
|
亚洲精品综合
|
97视频免费观看
|
亚洲免费精品视频
|
欧美在线小视频
|
国内av在线
|
欧美大白屁股
|
国产精品久久久久久99
|
日本精品视频在线
|
女人黄网站
|
国产日韩在线视频
|
精品在线一区
|