65.9K
CodeProject 正在变化。 阅读更多。
Home

串口配置对话框

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.32/5 (11投票s)

2007 年 6 月 4 日

CPOL

3分钟阅读

viewsIcon

107472

downloadIcon

5145

串口的通用配置对话框

Screenshot - frmComm.png

引言

在我的硬件项目中,我经常需要在微控制器(Microchip PIC)和PC之间通过串口(RS-232)发送一些校准数据。PC端的软件是用VB6编写的,使用了MSComm控件。后者需要配置参数:端口号、波特率、数据位数、停止位数。配置MSComm是一个相当常见的任务(过去甚至更常见)。所以,起初我以为网上应该有这样的对话框。不幸的是,找不到这样的对话框,所以我自己写了一个。希望它变得足够通用和可重用。

特点

  • 自动检测串口
  • 最近的端口设置存储在 INI 文件中
  • 接口支持在同一程序中配置多个端口

对话框

配置在frmComm对话框中完成。

ShowConfig

声明

Public Function ShowConfig( _ 
    ByRef comm As MSComm, _ 
    Optional ByRef strIniFile As String, _ 
    Optional ByRef strSection As String) _ 
    As VbMsgBoxResult 

目的

设置配置对话框并将其显示给用户。cboPort填充了可用 COM 端口的列表。

参数

  • ByRef comm As MSComm

    MSComm将在对话框中配置。如果comm已经打开,则 GUI 会预先加载其配置并关闭 comm。

  • Optional ByRef strIniFile As String

    包含配置信息的 INI 文件的可选名称。GUI 会预先加载 INI 文件中的设置。

  • Optional ByRef strSection As String

    包含配置信息的 INI 文件中可选的节名称。如果未提供节名称,则使用默认名称serial_port

返回值

  • vbOK 当配置成功时
  • vbCancel 当用户决定取消配置时

QuietConfig

声明

Public Function QuietConfig( _ 
    ByRef comm As MSComm, _ 
    ByRef strIniFile As String, _ 
    ByRef strSection As String) _ 
    As VbMsgBoxResult 

目的

从本地文件中的参数配置目标MSComm,而不显示配置对话框。

前提条件

提供的 INI 文件包含配置信息。

后置条件

目标MSComm已配置但未打开。

参数

  • ByRef comm As MSComm

    MSComm将从 INI 文件配置。如果comm已经打开,它将被关闭。

  • ByRef strIniFile As String

    包含配置信息的 INI 文件的可选名称。GUI 会预先加载 INI 文件中的设置。

  • ByRef strSection As String

    包含配置信息的 INI 文件中可选的节名称。如果未提供节名称,则使用默认名称serial_port

返回值

  • vbOK 当配置成功时
  • 如果 INI 文件出错或不存在,则为vbAbort

INI 文件

加载和保存

如果提供了文件的名称,则对话框将填充来自 INI 文件的参数。

结构

同一 INI 文件中多个端口的多个节,或多个端口的单独 INI 文件。INI 文件节的名称可以由用户选择,默认名称为serial_port

键:CommPort - 端口号,与MSComm.CommPort相同

KEYSettings - 端口设置,与MSComm.Settings格式相同

闭幕词

如果您发现任何错误或有任何建议,请告诉我!

参考文献

[1] HyperTerminal 中的串口配置对话框

[2] MSComm控件的根 MSDN 文章
http://msdn2.microsoft.com/en-us/library/aa259393.aspx

修订历史

版本# 注释 日期 作者
0.1 初稿 2007 年 6 月 4 日 Nick Alexeev
0.2 向项目文件添加了缺少的 *frmComm.frx* 2007 年 6 月 18 日 Nick Alexeev
0.3 更新了文章 2007 年 7 月 23 日 Nick Alexeev
© . All rights reserved.