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

  1. //---------------------------------------------------------------------------
  2. #ifndef Unit1H
  3. #define Unit1H
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <Controls.hpp>
  7. #include <StdCtrls.hpp>
  8. #include <Forms.hpp>
  9. #include "CPort.hpp"
  10. //---------------------------------------------------------------------------
  11. class TForm1 : public TForm
  12. {
  13. __published:    // IDE-managed Components
  14. TComPort *compt;
  15. TButton *btn_set;
  16. TButton *btn_open_close;
  17. TButton *btn_send;
  18. TMemo *memo_1;
  19. TEdit *edt_send;
  20. void __fastcall btn_setClick(TObject *Sender);
  21. void __fastcall btn_open_closeClick(TObject *Sender);
  22. void __fastcall btn_sendClick(TObject *Sender);
  23. //       void __fastcall ComPortRxChar(TObject* Sender, int Count);
  24. void __fastcall comptRxChar(TObject *Sender, int Count);
  25. private:    // User declarations
  26. int time;
  27. public:     // User declarations
  28. __fastcall TForm1(TComponent* Owner);
  29. };
  30. //---------------------------------------------------------------------------
  31. extern PACKAGE TForm1 *Form1;
  32. //---------------------------------------------------------------------------
  33. #endif

2.com_port.cpp

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma link "CPort"
  8. #pragma resource "*.dfm"
  9. TForm1 *Form1;
  10. //---------------------------------------------------------------------------
  11. __fastcall TForm1::TForm1(TComponent* Owner)
  12. : TForm(Owner)
  13. {
  14. memo_1->Text="";
  15. }
  16. //---------------------------------------------------------------------------
  17. void __fastcall TForm1::btn_setClick(TObject *Sender)//设置串口
  18. {
  19. compt->ShowSetupDialog();
  20. }
  21. //---------------------------------------------------------------------------
  22. void __fastcall TForm1::btn_open_closeClick(TObject *Sender) //打开&关闭串口
  23. {
  24. if(compt->Connected)
  25. {
  26. compt->Close();
  27. btn_open_close->Caption="打开串口";
  28. }
  29. else
  30. {
  31. compt->Open();
  32. btn_open_close->Caption="关闭串口";
  33. }
  34. }
  35. //---------------------------------------------------------------------------
  36. void __fastcall TForm1::btn_sendClick(TObject *Sender) //发送数据
  37. {
  38. AnsiString Str;
  39. Str=edt_send->Text;
  40. Str=Str+"/r/n";
  41. compt->WriteStr(Str);
  42. //memo_1->Text="yes,you are right!/r/n";
  43. }
  44. //---------------------------------------------------------------------------
  45. void __fastcall TForm1::comptRxChar(TObject *Sender, int Count) //接收数据
  46. {
  47. AnsiString Str;
  48. compt->ReadStr(Str,Count);
  49. memo_1->Text=memo_1->Text+Str;
  50. }
  51. //---------------------------------------------------------------------------

cport串口控件的应用的更多相关文章

  1. Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件!

    源:Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件! 2014年02月06日发布控件的重要更新版本: Victor 串口控件 1.5.0.2 版本 (包 ...

  2. delphi SPCOMM串口控件

    在Delphi7.0中安装Spcomm串口通信控件的方法为:选择Delphi7.0的“Component”菜单,点击“Install Component...”菜单项,然后在弹出的Into exist ...

  3. BCB 串口控件的使用 TComm

    昨天工作用到了串口通信,MMP的,昨天懵逼了一下午,今天终于整通了,身为菜鸟,大师们是不懂这些心痛的. 进入主题:使用BCB提供的控件TComm编程方便且简单,TComm位于System分类里面.   ...

  4. C# 实现串口发送数据(不用串口控件版)

    参考:https://blog.csdn.net/mannix_lei/article/details/79979432 https://www.cnblogs.com/ElijahZeng/p/76 ...

  5. winform串口控件serialPort1的使用

    serialPort1 控件使用的关键点主要有三: 1.配置串口号2.配置数据接收事件3.打开串口 关键代码如下: private void Form1_Load(object sender, Eve ...

  6. VS2013+MFC串口控件的简单上位机

    因为做东西,正好用到这里.所以就上传了文件分享一下. 利用VS带的MFC库,用起来还是比较方便的.空间的程序构架都是自动生成的,具体的程序自己加进去就行. 里面有整个的工程 还带有一个生成的EXE文件 ...

  7. iocomp控件的应用

    iocomp是一个强大的工业控件.适用于vb/vc/vs.net/Delphi/BCB(windows/linux).囊括了常见的工业控制控件,详见官网说明,源码能够到官网下载,也能够到我的资源库下载 ...

  8. C#利用控件mscomm32.ocx读取串口datalogic扫描枪数据

    1).开发环境VS12,语言C# 2).扫描枪品牌:datalogic 4470 3).通讯协议:串口 1.首先,第一步创建一个新工程,windows窗体应用程序,命名为TestScanner,如下: ...

  9. MSComm控件进行串口编程的基本步骤

    Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控 ...

随机推荐

  1. hihocoder 1178 : 计数

    #1178 : 计数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Rowdark是一个邪恶的魔法师.在他阅读大巫术师Lich的传记时,他发现一类黑魔法来召唤远古生物, ...

  2. 微信小程序 - video组件poster无效 / 视频播放列表

    在做有关微信小程序有关视频播放页面的时候,遇到video组件设置poster无效果,然后查了下poster属性:视频封面的图片网络资源地址,如果 controls 属性值为 false 则设置 pos ...

  3. [BZOJ5305][Haoi2018]苹果树 组合数

    题目描述 小 C 在自己家的花园里种了一棵苹果树, 树上每个结点都有恰好两个分支. 经过细心的观察, 小 C 发现每一天这棵树都会生长出一个新的结点. 第一天的时候, 果树会长出一个根结点, 以后每一 ...

  4. echarts官网上的动态加载数据bug被我解决。咳咳/。

    又是昨天,为什么昨天发生了这么多事.没办法,谁让我今天没事可做呢. 昨天需求是动态加载数据,画一个实时监控的折线图.大概长这样. 我屁颠屁颠的把代码copy过来,一运行,caocaocao~bug出现 ...

  5. 用Lucene.net对数据库建立索引及搜索<转>

    用Lucene.net对数据库建立索引及搜索 最近我一直在研究 Lucene.net ,发现Lucene.net对数据库方面建索引的文章在网上很少见,其实它是可以对数据库进行索引的,我闲着没事,写了个 ...

  6. 【cocos2d-js网络教程篇】cocos2d-js http网络请求

    前言 刚入手cocos2d-js,看到网上的JS的http网络请求,大部分都是错的.原因在于,js-tests里面的网络请求实例没有给出加载完成事件.正确的加载完成事件如下: var xhr = cc ...

  7. Codeforces 1131 F. Asya And Kittens-双向链表(模拟或者STL list)+并查集(或者STL list的splice()函数)-对不起,我太菜了。。。 (Codeforces Round #541 (Div. 2))

    F. Asya And Kittens time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. Comet OJ CCPC-Wannafly Winter Camp Day1 (Div2, online mirror) F.爬爬爬山-最短路(Dijkstra)(两个板子)+思维(mdzz...) zhixincode

    爬爬爬山 已经提交 已经通过 9.83% Total Submission:417 Total Accepted:41 题目描述 爬山是wlswls最喜欢的活动之一. 在一个神奇的世界里,一共有nn座 ...

  9. Thinkphp命名规范

    1.类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php: 2.类 ...

  10. 只安装自己需要的Office2016组件的方法

    转自:https://www.ithome.com/html/office/178814.htm http://www.orsoon.com/news/184524.html