首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
多线程串口通信技术在GPS导航中的应用
来源:本站整理  作者:佚名  2009-05-14 10:41:50




3 多线程编程技术在GPS数据采集系统中的应用
3.1 GPS导航系统功能分析
    GPS导航是通过GPS定位技术实时给出用户所在的位置,这就要求需要实时接收来自GPS接收机串口的定位数据,在实时监视串口的同时还需要进行数据存储、显示等,利用多线程串口通信技术将很好地解决这个问题。通过对GPS导航系统分析,将程序分成以下几个线程:
    主线程:负责处理用户界面的消息处理,按照预定义流程调度其他线程处理数据。
    串口监视线程:监视串口,采集数据并将数据保存到一个缓冲区。
    入库线程:从缓冲区读取数据进行相应处理并将处理好的数据存入数据库。
    显示线程:通过地图匹配算法将用户实时位置显示在电子地图上。
    GPS导航系统框图如图1所示。

3.2 具体实现
    系统首先对线程在相应的头文件中说明,然后在程序初始化时加人创建程序代码,这样创建后,线程就可以和主线程并发执行了。主线程、入库线程、显示线程与一般的编程处理相同,所以下面着重说明串口监视线程。
    对串口的操作采用基于多线程编程的CSerialPort类,其工作流程如下:首先设置好串口参数,再开启串口监测工作线程。串口监测工作线程监测到串口接收到的数据流、控制事件或其他串口事件后,就以消息方式通知主程序,激发消息处理函数进行数据处理,这是对接收数据而言的;发送数据可直接向串口发送。应用程序流程如图2所示。

    编程步骤如下:
    (1)建立程序
    建立一个基于单文档的MFC应用程序CSerial-PortTest,其他步骤保持缺省状态。
    (2)添加类文件
    将SerialPort.h和SerialPort.cpp两个类文件复制到工程文件夹中,用Project-Add to Project-Files命令将上述两个文件加入工程,并在任何要调用这个类的模块中加上#include SerialPort.h文件。
    在视类头文件中定义串口类的对象:CSerialPortm_Port。
    (3)人工增加串口消息响应函数OnCommunica-tion(WPARAM ch,LPARAM port)
    首先在CSerialPortTestView.h中添加串口字符接收消息WM_COMM_RXCHAR(串口接收缓冲区内有一个字符)的响应函数声明,即:

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:8,207.03100 毫秒