VS或者VC6.0编写的C语言程序,怎样能够实现串口数据的收发?

VS或者VC6.0编写的C语言程序,怎样能够实现串口数据的收发?,第1张

1  、Windows   API通信函数方法 。与通信有关的Windows   API函数共有26个,但主要有关的有: CreateFile()   用   “comn”(n为串口号)作为文件名就可以打开串口。 ReadFile()   读串口。

2、WriteFile()   写串口。 CloseHandle()   关闭串口句柄。初始化时应注意CreateFile()函数中串口共享方式应设为0,串口为不可共享设备,其它与一般文件读写类似。以下给出API实现的源代码。

3、利用端口函数直接 *** 作 。这种方式主要是采用两个端口函数_inp(),   _outp()实现对串口的读写,其中读端口函数的原型为: int   _inp(unsigned   shot   port) 。该函数从端口读取一个字节,端口号为0~65535。 写端口的函数原型为: nt   _outp(unsigned   shot   port,   int   databyte) 。

4、  MSComm控件 。MSComm控件是微软开发的专用通信控件,封装了串口的所有功能,使用很方便,但在实际应用中要小心对其属性进行配置。下面详细说明该类应用方法。 

串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。

在Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分。

应用程序要使用串口进行通信,必须在使用之前向 *** 作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

用的控件是:trayicon

具体用法如下:

borland

c++

builder

5.0

中编写tray程序是件很简单的事。在安装

borland

c++

builder

5.0

时选择full(完全)安装,安装完成后,在samples组件页中有一个trayicon组件,它封装编写tary所需的window

api函数,使用该组件编写tary程序不用加一句程序代码,真是易如反掌。

首先,我们先看一下trayicon组件常用的属性:

属性说明

animate设为true时,顺序更改icons属性设置的图标

animateinterva设置更改图标的时间(单位:毫秒)

hide设为true时,最小化时隐藏在任务栏上的标题栏

hint设置鼠标移动到tary图标上出现的提示信息

iconindex设置图标索引值

icons设置图标源(通常设置一个imagelist组件)

popupmenu设置要d出的菜单(通常设置一个popupmenu组件)

popupmenuon设置触发d出菜单的鼠标 *** 作

restoreon设置恢复最小化到正常状态的鼠标 *** 作

visible设为true时,在任务栏最右边显示图标

鼠标 *** 作说明:

值说明

imclick鼠标单击

imdoubleclick鼠标双击

imleftclickup单击鼠标左键,放开

imleftdoubleclick双击鼠标左键

immousedown按下鼠标键

immouseup按下鼠标键,放开

imnone不设置鼠标 *** 作

imrightclickup单击鼠标右键,放开

imrightdoubleclick双击鼠标右键

下面让我们来编一个简单的tary程序:

1、新建工程,添加一个trayicon组件、一个popupmenu组件和一个imagelist组件。它们的name属性

都用默认的名字:trayicon1、popupmenu1、imagelist1。

2、设置trayicon1的属性,如下:

属性值

linux

animate

true

animateinterva

1000

hide

true

hint

tary演示程序

iconindex

0

icons

imagelist1

name

trayicon1

popupmenu

popupmenu1

popupmenuon

imrightclickup

restoreon

imdoubleclick

visible

true

3、双击popupmenu1,d出菜单设计器,随意地加入几个菜单项。

4、双击imagelist1,加入支持的图片(*.ico、*.bmp)。

到此,不用编写一句程序代码,一个简单的tary程序就做好了。按f9编译运行,将鼠标移动到tary上面就会出现“tary演示程序”的提示信息;在tary上单击鼠标右键d出菜单popmenu1;按下程序窗口的最小化按钮,程序最小化后隐藏任务栏上的标题栏;双击tary将会恢复程序最小化;而且,tary图标以1000毫秒(1秒)的速度变换。够简单了吧?!

taryicon组件的演示源程序在

borland

c++

builder

5.0

安装目录下的\cbuilder5\examples\apps\trayicon。若你不想使用taryicon组件编写tary,只想使用api函数,可以参考安装目录\cbuilder5\examples\controls\traydemo下的源程序

注意以下几点:

1、这个控件的托盘图标要使用到timagelist控件,请设置其icons属性和对应的timagelist关联就可以

了,如果图标要变化,timagelist中要有多个图标,用trayicon控件的iconindex的值的改变来改变托

盘图标。

2、最小化和隐窗体应该用:

trayiconme->minimize()来实现

还原窗体用:trayiconme->restore()。

3、至于菜单的d出就在窗体上加一个popupmenu控件就可以了,popupmenu的设定和一般的设定没有什

么不同。然后把trayicon控件的popupmenu属性和popupmenu控件关联起来就可以了。当然,别忘了

设定一个popupmenuon属性,决定这个菜单的鼠标触发方式。

4、当鼠标指向托盘时,显出的字是trayicon的hint属性来设定的

MSCOMM控件需要手动添加的。单击主菜单project的子菜单Add To project的Components and Controls选项,在d出的"Components and Controls Gallery"对话框中选择Registered ActiveX Controls文件夹中的"Microsoft Communications Control,version 6.0"选项,单击其中的"Insert"按钮,MSComm控件就被增加到工程中了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11887177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存