VC多线程串口通讯编程技术在GPS导航的应用介绍

GPS(GlobalPositioningSystem)又称全球定位系统。GPS定位是通过测定用户到卫星之间的距离从而确定用户的位置的一种定位方法,在世界各国有着广泛的应用。纵观GPS的应用,总是和通讯技术紧密相连。从卫星星历发播到差分信息传送,以及从GPS接收机实时读取数据均和通讯有关。从G

VC多线程串口通讯编程技术在GPS导航的应用介绍
GPS(GlobalPositioningSystem)又称全球定位系统。GPS定位是通过测定用户到卫星之间的距离从而确定用户的位置的一种定位方法,在世界各国有着广泛的应用。纵观GPS的应用,总是和通讯技术紧密相连。从卫星星历发播到差分信息传送,以及从GPS接收机实时读取数据均和通讯有关。从GPS接收机实时读取数据使用的是串口通讯技术,串口通讯技术一般应用在实时处理中。GPS导航即是通过GPS定位技术实时给出用户所在的位置,这就要求实时地获取定位数据,现在一般采用异步串口通讯方法。GPS接收机和计算机按串行的方式进行通讯,这种通讯方式使用的数据线少,但其传输速度比并行慢。采用多线程技术,即开设一辅助线程用于读取数据,这样可以避免读写阻塞时主程序死锁。

2串口通讯的基本原理串行端口的本质功能是作为CPU的串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。在Windows环境(WindowsNT、windows98、Windows2000)下,串口是系统资源的一部分。应用程度使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

3使用多线程串口编程读取数据的实现过程32位串口通信可以用两种方法实现:利用ActiveX控件和AH通信函数。这里主要介绍使用API通信函数,因为用API通信函数虽然复杂一点但比控件灵活。

局变量,也可在自己定义的类中定义为类的变量,通过类的对象引用。

2002.6/全球定位系统21可自选允许读写//共享方式,此项必须为NULL,//指向安全属性的指针OPENEXISTING,//设置产生方式FILEFLAGOVERLAPPED,//我准备使用异步通信,必须这样设置NULL);//模板文件句柄,必须为NULL上面的函数功能是:用异步通讯方式打开COM2串口,返回串口的句柄,如果要打开COM1,将COM2换成COM1即可。

打开串口后还需要检测串口是否被成功的打开。如果打开成功则对串口进行设置,否则退出。

来的参数设置下面是对串口原来的参数进行重新设置。deb.BaudRate=9600;//读取数据的波特率,可改,如4800等。

//奇偶校验控制,此处奇偶无效要根据通信协议选择上述参数。

对接收机进行设置对接收机进行设置,即通过对串口写命令,设置输出数据格式,定位模式,数据传输速率,输出的电文类型等参数。不同型号的接收机命令不尽相同,必须仔细阅读接收机的说明书。后面将介绍向串口写数据的函数。

启动一个辅助线程,处理串口事件hCommWatchThread=CreateThreadNULL,//安全属性,//初始化线程栈的大小,缺省为与主线程大小相同上函数启动了一辅助线程,执行Fil-eReadThreacK)的功能,让读取数据在后台进行,FileReadThreadO必须定义为全局函数。

真正读取数据功能是通过FileReadThread()函数实现的。下面是使用重叠方式读取串口数据的实现代码。

数据的字符数组osReader=0;//读串口的重叠结构读串口IpStat;//串口设备状态信息//创建重事件结构中的事件句柄osReader.FALSE,//延迟读到数据//重叠读数据7在主线程中向串口写数据发送命令下面的代码是实现向串口发送数据,发数据和接收数据相似。

//设置*后的返回的错误代码非法的串口句柄错误//设置*后的返回的错误代码无效的数据//如果数据缓冲区指针为空if(pBuf―=NULL)//设置*后的返回的错误代码无效的参数送的数据和重叠事件返回的结果重叠结构IpStat;//串口设备状态信息//创建事件结构中的事件句柄osWrite.//创建重事件句柄没有成功//发送数据到串口//用重叠方式发送//获取重叠读串口数据的结果caseWAITOBJECT0;//清除串口发生的错误8关闭串口和线程应用程序结束之前执行此项操作,可在View类的OnDestroy()函数中执行。

(下转第53页)(上接第23页)4结束语上述是用多线程编程技术进行串口通信的过程和代码,能实现GPS接收机和计算机之间实时的通信,从而实现导航功能。所有的串口通信的问题都可用上述方法。

泊祎回收网遵循行业规范,任何转载的稿件都会明确标注作者和来源;

发布者:泊祎回收网,转载请注明出处:https://www.huishou5.net/dianzi/12612.html

(0)
打赏 微信扫一扫 微信扫一扫
泊祎回收网泊祎回收网
上一篇 2021年4月26日
下一篇 2021年4月26日

相关推荐

电话

联系我们

1388-0022-916

在线咨询:点击这里给我发消息

邮件:1395700887@qq.com

工作时间:周一至周日,9:30-18:30,节假日无休

微信
微信
分享本页
返回顶部