cport串口控件的应用
cport是一个很强大的串口控件。支持delphi/bcb.最新版本是v4.10.官网下载地址是:http://sourceforge.net/projects/comport/files/comport/
,配有详细的说明文档。在这我仅仅作为一个总结,方便以后自己查看。
由于我认为新学习pascal语言是件很头疼的事情!所以最终我决定使用bcb作为windows上的编程工具了。
安装好cport控件后在bcb的控件栏中将会多出如图示的cport控件。

常用的有ComPort和ComDataPacket控件,本例中我只用了ComPort控件实现简单的串口发送接收功能。
(1).将ComPort拖至窗体上,设置属性页中的DiscardNull为true,ControlDTR为dtrEnable.
(2).添加三个按钮控件到窗体,分别作为“设置串口”“打开/关闭串口”“发送”。
(3).添加Edit控件作为输入将要发送的数据,添加memo作为显示接收的数据。
如图示:

(4).分别双击三个按钮事件,“设置串口”“打开/关闭串口”“发送”函数。
(5).接收数据关键的一步:选中cport控件,进入其Events页,双击OnRxChar编写接收函数。(之前我一直是手动添加的该函数,导致最后没有与控件的events关联起来,从而无法正确接收数据,纠结的2天!)如图示:

代码:
1.com_pro.h
- //---------------------------------------------------------------------------
- #ifndef Unit1H
- #define Unit1H
- //---------------------------------------------------------------------------
- #include <Classes.hpp>
- #include <Controls.hpp>
- #include <StdCtrls.hpp>
- #include <Forms.hpp>
- #include "CPort.hpp"
- //---------------------------------------------------------------------------
- class TForm1 : public TForm
- {
- __published: // IDE-managed Components
- TComPort *compt;
- TButton *btn_set;
- TButton *btn_open_close;
- TButton *btn_send;
- TMemo *memo_1;
- TEdit *edt_send;
- void __fastcall btn_setClick(TObject *Sender);
- void __fastcall btn_open_closeClick(TObject *Sender);
- void __fastcall btn_sendClick(TObject *Sender);
- // void __fastcall ComPortRxChar(TObject* Sender, int Count);
- void __fastcall comptRxChar(TObject *Sender, int Count);
- private: // User declarations
- int time;
- public: // User declarations
- __fastcall TForm1(TComponent* Owner);
- };
- //---------------------------------------------------------------------------
- extern PACKAGE TForm1 *Form1;
- //---------------------------------------------------------------------------
- #endif
2.com_port.cpp
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "Unit1.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "CPort"
- #pragma resource "*.dfm"
- TForm1 *Form1;
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- memo_1->Text="";
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::btn_setClick(TObject *Sender)//设置串口
- {
- compt->ShowSetupDialog();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::btn_open_closeClick(TObject *Sender) //打开&关闭串口
- {
- if(compt->Connected)
- {
- compt->Close();
- btn_open_close->Caption="打开串口";
- }
- else
- {
- compt->Open();
- btn_open_close->Caption="关闭串口";
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::btn_sendClick(TObject *Sender) //发送数据
- {
- AnsiString Str;
- Str=edt_send->Text;
- Str=Str+"/r/n";
- compt->WriteStr(Str);
- //memo_1->Text="yes,you are right!/r/n";
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::comptRxChar(TObject *Sender, int Count) //接收数据
- {
- AnsiString Str;
- compt->ReadStr(Str,Count);
- memo_1->Text=memo_1->Text+Str;
- }
- //---------------------------------------------------------------------------
cport串口控件的应用的更多相关文章
- Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件!
源:Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件! 2014年02月06日发布控件的重要更新版本: Victor 串口控件 1.5.0.2 版本 (包 ...
- delphi SPCOMM串口控件
在Delphi7.0中安装Spcomm串口通信控件的方法为:选择Delphi7.0的“Component”菜单,点击“Install Component...”菜单项,然后在弹出的Into exist ...
- BCB 串口控件的使用 TComm
昨天工作用到了串口通信,MMP的,昨天懵逼了一下午,今天终于整通了,身为菜鸟,大师们是不懂这些心痛的. 进入主题:使用BCB提供的控件TComm编程方便且简单,TComm位于System分类里面. ...
- C# 实现串口发送数据(不用串口控件版)
参考:https://blog.csdn.net/mannix_lei/article/details/79979432 https://www.cnblogs.com/ElijahZeng/p/76 ...
- winform串口控件serialPort1的使用
serialPort1 控件使用的关键点主要有三: 1.配置串口号2.配置数据接收事件3.打开串口 关键代码如下: private void Form1_Load(object sender, Eve ...
- VS2013+MFC串口控件的简单上位机
因为做东西,正好用到这里.所以就上传了文件分享一下. 利用VS带的MFC库,用起来还是比较方便的.空间的程序构架都是自动生成的,具体的程序自己加进去就行. 里面有整个的工程 还带有一个生成的EXE文件 ...
- iocomp控件的应用
iocomp是一个强大的工业控件.适用于vb/vc/vs.net/Delphi/BCB(windows/linux).囊括了常见的工业控制控件,详见官网说明,源码能够到官网下载,也能够到我的资源库下载 ...
- C#利用控件mscomm32.ocx读取串口datalogic扫描枪数据
1).开发环境VS12,语言C# 2).扫描枪品牌:datalogic 4470 3).通讯协议:串口 1.首先,第一步创建一个新工程,windows窗体应用程序,命名为TestScanner,如下: ...
- MSComm控件进行串口编程的基本步骤
Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控 ...
随机推荐
- javascript 实现图片放大镜功能
淘宝上经常用到的一个功能是利用图片的放大镜功能来查看商品的细节 下面我们来实现这样一个功能吧,原理很简单: 实现一个可以随鼠标移动的虚框 在另外一个块中对应显示虚框中的内容 实现思路: 虚框用css中 ...
- Divide Two Integers——二分法的经典变形
Divide two integers without using multiplication, division and mod operator. If it is overflow, retu ...
- Pygame-依葫芦画瓢之兔獾大战
Pygame-依葫芦画瓢之兔獾大战 前几天看到国外一个12岁的孩子写的兔獾大战游戏,心生敬佩,想当年我还是12岁的时候还不知电脑为何物,连小霸王都未曾玩过.自己也未曾想去搞游戏开发,纯属自娱自乐.在此 ...
- JS作用域和ASP(vbs)作用域比较
一.js作用域,先上图: 以上代码执行的效果是,依次弹出 undefined, undefined, a, a,为什么是这样的结果啦?因为JS的作用域为链式作用域. 作用域链: 用VAR声明一个变量时 ...
- AC日记——小B的询问 洛谷 P2709
小B的询问 思路: 水题: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 50005 #define ll ...
- Vue.js—组件快速入门及Vue路由实例应用
上次我们学习了Vue.js的基础,并且通过综合的小实例进一步的熟悉了Vue.js的基础应用.今天我们就继续讲讲Vue.js的组件,更加深入的了解Vue,js的使用.首先我们先了解一下什么是Vue.js ...
- 3.spark streaming Job 架构和容错解析
一.Spark streaming Job 架构 SparkStreaming框架会自动启动Job并每隔BatchDuration时间会自动触发Job的调用. Spark Streaming的Job ...
- 【javascript】基于javascript的小时钟
计时事件:通过JavaScript,我们可以设置在一段时间间隔后执行一段代码,而不仅仅是在函数调用后立即执行. 在JavaScript中,使用计时事件是很容易的,主要有两个事件供我们使用 setTim ...
- python抓取网页图片的小案例
1.分析 ,要抓取的页面的信息以及对应的源码信息 blog.sina.com.cn/s/blog 93dc666c0101b1bj.html 2.代码模块: 导入正则表达的模块 导入url相关的模块 ...
- 验证二叉查找树(LintCode)
验证二叉查找树 给定一个二叉树,判断它是否是合法的二叉查找树(BST) 一棵BST定义为: 节点的左子树中的值要严格小于该节点的值. 节点的右子树中的值要严格大于该节点的值. 左右子树也必须是二叉查找 ...