
//
设计题目
:
基于51单片机的串口通信
//
功能
:
//
说明
:
晶振用12m,
///////////////////////////////////////////////////////////
#include
//
12m
晶振
#define
uchar
unsigned
char
#define
uint
unsigned
int
///////////////////////////////////////////////////////////
//
name
:
串口发送函数
//
in
:
//
out
:
//
function
:
//
explain
:
///////////////////////////////////////////////////////////
void
send(uchar
x)
{
sbuf=x
//
将数据放到缓冲区,发送
while(!ti)
//
等待发送完成
ti=0
//
清标志位
}
///////巧棚乎////////////////////////////////////////////////////
//
name
:
初始化函数
//
in
:
//
out
:
//
function
:
//
explain
:
///////////////////////////////////////////////////////////
void
init(void)
{
tmod=0x20
//
t1工作在方式2,自动重载
th1=0xe6
tl1=0xe6
//
设置波特率为1200
sm0=0
sm1=1
//
串口方式1
tr1=1
//
打开定时器1
}
///////////////////////孝悉////////////////////////////////////
//
name
:
主函数
//
in
:
//
out
:
//
function
:
//
explain
:
//////////////////////////////////////////////////////和答/////
void
main(void)
{
uchar
i
init()
//
初始化
while(1)
{
for(i=0
i<10
i++)
{
send(i)
}
}
}
权威《unix网络编程》。做这个事情大概分这么几步。
一:gps设备先通过某种手段上网(可以是拨号上网,wifi。。。。)
二:gps设备向服务器(就是你运行程序的机器)申请连接。可以用域名或者IP找到你的服务器。
三:服务洞庆器接受连接。
四:坦困你跟这个gps设备提前预定好。你们的通信形式。
常用的大概也就是,一问一答。你可以通过tcp连接发请求指令给设备,设备收到以后给你回纳信握复。然后你只要分析回复指令就就行了。
具体怎么监听连接,怎么收发。书上说的很清楚。
GPS模块只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送单片机中,在没有进一步处理之前,传送的数据是一长串字节流信息。因此必须经过程序将其转化为有实际意义的;可供高层决策使用的定位信息数据。与其他通信协议类似,GPS模块都遵循NMEA-0183协议。NMEA-0183的数据信息有十几种,这些信息的作用分别是源饥:$GPGGA:输出GPS的定位雹伍返信息;$GPGSA:输出卫星DOP值信息;$GPGSV:输出可见的卫星信息;$GPRMC:输出最小数据量的GPS信息;$GPVTG:地面速度信息;$GPGLL:输出大地坐标信息;$GPZDA:输出UTC时间信息;$GPGST:输出定位标准差信息;$GPALM:输出卫星星历信息;通过串口输出NMEA-0183协议格式的数据,解析获得下述信息:
◆定位:提供经度、纬度、高度(海拔)橘猜信息;
◆授时:提供精确UTC时间,闰秒修正预报;提供日期信息;
◆其他:提供速度,航向(运动方向)信息;
◆卫星信息:如PRN,SNR,仰角,方位角等;
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)