昨天工作用到了串口通信,MMP的,昨天懵逼了一下午,今天终于整通了,身为菜鸟,大师们是不懂这些心痛的。

进入主题:使用BCB提供的控件TComm编程方便且简单,TComm位于System分类里面。   / /备注(网友说这种方式可以用,当要求高的时候还是不够用的。)

1、窗口拖入一个TComm控件

2、属性框参数设置。

     / /备注(常需设置的参数:CommName串口名 、BaudRate波特率、ByteSize、Parity校验、ReadIntervalTimeout读串口时两字符时间间隔)

3、接收数据并处理

  BCB提供了 OnReceiveData()自动接收来自串口的数据

//备注(typedef void* Pointer;//标准定义的

void __fastcall cm1ReceiveData(TObject *Sender, Pointer Buffer,  // Buffer存放着读取的数据WORD BufferLength); //Bufferlength 存放着 读取的数据的长度

4、发送数据  

  用串口对象调用写数据函数

function TComm.WriteCommData( pDataToWrite: PChar; dwSizeofDataToWrite: Word ): Boolean; // 参数一:发送的数据;参数二:发送的数据的长度

5、具体使用串口

TComm * cm1;
//1、打开串口try{cm1->StartComm();  //函数会让程序挂掉,不知道为什么 try catch可规避,不影响使用       CM1PortOpenSucccessFlag=true;}catch(...){m_step = -1;//Application->MessageBoxA("OK","串口打开失败",MB_OK|MB_SYSTEMMODAL);}

//2、发送的数据  char * cmd;  cmd="MCH\r\n";  //注意:命令MCH末尾要跟着\r\n不然串口不回数据,至于为什么,各位开脑洞吧  bool rtn = cm1->WriteCommData(cmd,strlen(cmd));  //注意:第二个参数如果按照函数定义那样用sizeof函数是有问题的,sizeof求的是所占空间,而不是字符个数

//3、睡眠等待Sleep(500);    发送数据后,接着要使用cm1ReceiveData串口返回的数据,需要等待一些时间。如果不等待,一直不等的 writeCommData将会出错。

//4、接收函数(自动接收)void __fastcall TparaForm::cm1ReceiveData(TObject *Sender, Pointer Buffer,      WORD BufferLength){  char recvData[100];  unsigned char revBuffer[100];  memset(recvData, 0, 100);  //AnsiString str;  for(int i=0; i<BufferLength; i++, ((BYTE *)Buffer)++)  {    revBuffer[i] = *(BYTE *)Buffer ;    recvData[i] = revBuffer[i];  }//得到char* 的recvData接收数据之后,根据需要使用,下面是个例子    m_readData=recvData; //成员变量    m_readDataLength=BufferLength;}

//5、使用完,关闭串口cm1->StopComm();

工作小助攻:AccessPort串口监视软件 易学易用

参考链接:http://www.myexception.cn/h/530898.html(串口各项参数解释)

        https://bbs.csdn.net/topics/310121049(串口监视工具)

      https://blog.csdn.net/Tercel99/article/details/46690921(这个详细)

        http://ascii.911cha.com/(Ascii值对照表)

        http://www.cnblogs.com/azbane/p/8710064.html(AnsiString与各种数据类型间的相互转换)

棒棒哒~~么么哒

转载于:https://www.cnblogs.com/azbane/p/8710362.html

BCB 串口控件的使用 TComm相关推荐

  1. node-red教程6 串口控件的使用

    #6.1 串口控件安装与介绍 串口控件是一个很有用的控件,它可以通过电脑或树莓派的串口收发数据.由于我们要做一个基于node-red的应用,并不是做一个只运行与电脑的纯软件,所以必然要与一定的硬件产生 ...

  2. vc++6.0使用串口控件例程

    vc++6.0使用串口控件例程 1.建立项目: 打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest; 2.在项目中插入MSComm控件 选择Project菜单下Add To Pr ...

  3. 常见的串口控件(1)

    串口控件主要有三种: mscomm: 微软的东西,是VB中带的一个ActiveX控件,使用简单,性能一般,由于是ActivX控件,打包时需要注册好多信息,在Delphi中使用,建议使用VCL控件,编译 ...

  4. 串口数据visual c++ MSComm 串口控件程序开发

    时间紧张,先记一笔,后续优化与完善. 在计算机中,数据通信主要有两种:一种是串口通信,每一个字符的二进制位按位排列停止传输,速度慢,但传输距离较远.鼠标口和usb口都属于串口.另一种是并行通信,每一个 ...

  5. MSCOMM串口控件在VS2010中的使用

    1.前言 之前的博客中有一篇关于MSCOMM使用的文章,里面最然给出了例子,但是对MSCOMM的使用介绍的不够.加之,近来又接触了上位机编程方面的东西,遂详细的做点笔记在这里. MSCOMM控件应用比 ...

  6. win7 64位VC串口控件打不开解决方法

    写了个MSComm的串口通信程序,在没有安装Vc的机器上没有办法运行.需要手动注册控件. 不过手动注册可以写成bat文件来完成.首先是建一个文件夹,64位系统将Windows/SysWOW64(32位 ...

  7. Delphi中ComPort串口控件通信中的数据处理

    http://www.cnblogs.com/gaiyang/archive/2011/09/02/2163265.html 1.串口通信的基本原理: 一般计算机与外部设备通讯有两种方式: 并行传送( ...

  8. vsport 虚拟串口 控件 Virtual Serial Port ActiveX注册码

    使用VSport.dll 开发了虚拟串口工具 在开发电脑上 安装好驱动后 可以运行 正常创建虚拟串口 Virtual Serial Port ActiveX 提供 vsport注册码,该注册码可以正常 ...

  9. SPCOMM控件在Delphi7.0串口通信中的应用

    ====================================================== 注:本文源代码点此下载 ================================= ...

最新文章

  1. html如何把上边角做成椭圆,使用css3的border-radius和border制作半圆、三角、椭圆等各种图形...
  2. C++ 单例模式中处理在类中声明一个指向一个自己的指针,在编译时显示定义的指针未定义的处理办法
  3. vb如何用代码对Excel的指定区域实行保护
  4. ios添加GPUImage到项目
  5. 2019 必看 Android 高级面试题总结
  6. Flink SQL 实战:双流 join 场景应用
  7. mac终端 install_Mac常用终端命令
  8. 为戴尔服务器下载ESXi
  9. ios 越狱后常见的源添加
  10. Git设置代理服务器
  11. 能量收集技术能为利用环境能源的应用带来巨大优势
  12. [转帖]房博士教你购房(二)
  13. 微信网页授权之取消授权
  14. 《五种时间:重建人生秩序》读书笔记
  15. [微传感器]PID控制结合电路的通俗理解
  16. 派大星如期反馈小程序的生命周期
  17. 这哥们儿的日志让我的心情好得一塌糊涂(ZZ)
  18. 应用程序无法正常启动0x000007b,请单击“确定”关闭应用程序(不要着急,先定位问题)
  19. 青岛海尔供应商java面试_海尔集团软件工程师面试经验
  20. 计算机测控基本原理,计算机测控原理.doc

热门文章

  1. 基于容器原理(docker、lxc、cells)的Android 双系统设计概要
  2. Android7.0 PowerManagerService亮灭屏分析(二)
  3. 新搭建mysql容易出现问题
  4. 比特币的区块结构解析
  5. 5分钟搞定android混淆
  6. java客户端服务器代码_Java Socket通信 客户端服务器端基本代码
  7. 如何用python把xlsx变为csv_python将excel转换为csv的代码方法总结
  8. JZOJ 5637. 【NOI2018模拟4.8】一双木棋
  9. Qt 模型视图框架解读之模型
  10. zabbix监控mysql的哪些参数_Centos6.3下zabbix监控mysql数据库参数