分享
 
 
 

多串口DLL解决方案API版

王朝other·作者佚名  2007-06-14
窄屏简体版  字體: |||超大  

硬件/系统

多串口DLL解决方案API版

作者 许士敏

调用Win32的串口通信API函数,以动态连接库(DLL)形式实现对多串口的操作。

正文

[refer]下载演示程序[/refer]

[refer]下载技术文档[/refer]

在现代的各种实时监控系统和通信系统中,在Windows 9X/NT下利用VC++对RS-232串口编程是常用的手段。

本程序以动态连接库(DLL)形式实现对多串口的操作,MSCOMM串口通讯控件在基于对话框的程序中很好使用,但在基于文档的程序不能直接使用该控件,且生成的可执行文件不能适用于不同的计算机。

Windows通信一般都以WOSA(Windows Open Services Architecture,即Windows开放式服务体系)模型为基础,在此模型中位于上层的应用程序通过调用各种通信API(Application Programming Interfaces,即应用程序接口)与位于下层的设备驱动程序进行数据交换。Windows对串行口的读写也不例外,通过调用Win32的串口通信API函数,即可编写串行通信程序。本DLL是基于API函数的。

一、 多串口DLL功能

(一) 串口参数设置

对RS-232-C串行端口进行参数配置是使用串口进行通讯的必要条件。而且由于场合不同、用途、功能的不同对串口也采取不同的配置方式,为了使本程序更灵活,适应面更广,采取将所有的可能参数都预先设置在几个组合框中,可以在程序运行后随时更改设置。

图1 串口参数设置界面

串口号: 自动检测计算机存在的串口,但只能控制从COM1到COM5,能满足绝大多数人的需求。

是否使用:如果选中,则表示要对该串口进行初始化,以及收发控制。否则表示对计算机存在的串口不操作。

波特率:从1200bps到57600bps。

校验:有无校验(NOPARITY)。

数据位:7位或是8位。

停止位:1位、1.5位或是2位。

流控制:有无流控制(flow)。

(二) 串口收发数据调试显示

在进行串口操作时,尤其是在调试期间,需要知道串口的收发数据。本DLL提供串口收发数据的显示界面。

图2 串口收发数据ASCII显示界面

图3 串口收发数据16进制显示界面

(三) 串口参数设置文件

串口参数设置文件名为MscommSet.ini,该文件保存在工程工作目录下,如果没有该文件,串口按缺省值设置,在设置串口参数后,自动生成该设置文件。其内容如下:

[0串口信息]

use=1

baud=2400

port=1

databits=8

stopbits=1

flow=0

parity=N

[1串口信息]

use=1

baud=2400

port=2

databits=8

stopbits=1

flow=0

parity=N

[2串口信息]

use=0

baud=2400

port=1

databits=8

stopbits=1

flow=0

parity=N

[3串口信息]

use=0

baud=2400

port=4

databits=8

stopbits=1

flow=0

parity=N

[4串口信息]

use=0

baud=2400

port=1

databits=8

stopbits=1

flow=0

parity=N

二、 多串口DLL的作用

本DLL 提供三个文件SerialAPIDLL.dll,SerialAPIDLL.lib和MultiSerialAPI.h。在应用时,要把这三个文件拷贝到相应的目录下,并且要作如图4的设置。详见示例工程。

图4 应用工程连接设置界面

三、 多串口DLL主要函数使用说明

1.BOOL OnCommsCreate(CWnd* pParentWnd);

创建串口,本DLL同时创建32个串口。pParentWnd为窗口指针,一般为this。

2. BOOL OnComportOpen();

根据串口设置文件中的设置参数,打开多串口。

3.void OnCommSend(unsigned int uiCom, CString sSendData, unsigned int uiKind);

往指定串口发送数据。其中uiCom为指定的串口,注意串口1的uiCom为0;sSendData为要发送的字符串; uiKind: 发送数据类型:0:原始数据1:加回车符2:加校验和。

4.void OnMscommsSet();

打开串口设置界面,改变串口设置,并保存到设置文件中。

5.BOOL OnComportTimerProcess(CString strProcess[MaxPort]);

判断串口接收的一组数据是否已经接收完。

6. BOOL OnPopupDialog();

打开串口收发数据显示调试界面。

CSDN VC编程经验总结

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有