BCB 串口控件的使用 TComm
昨天工作用到了串口通信,MMP的,昨天懵逼了一下午,今天终于整通了,身为菜鸟,大师们是不懂这些心痛的。
进入主题:使用BCB提供的控件TComm编程方便且简单,TComm位于System分类里面。 / /备注(网友说这种方式可以用,当要求高的时候还是不够用的。)
1、窗口拖入一个TComm控件
2、属性框参数设置。
/ /备注(常需设置的参数:CommName串口名 、BaudRate波特率、ByteSize、Parity校验、ReadIntervalTimeout读串口时两字符时间间隔)
3、接收数据并处理
BCB提供了 OnReceiveData()自动接收来自串口的数据
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 = -;
//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与各种数据类型间的相互转换)
棒棒哒~~么么哒
BCB 串口控件的使用 TComm的更多相关文章
- cport串口控件的应用
cport是一个很强大的串口控件.支持delphi/bcb.最新版本是v4.10.官网下载地址是:http://sourceforge.net/projects/comport/files/compo ...
- 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安装控件方法汇总
1.BCB 菜单: Project->Options->Packages->Add[喝小酒的网摘]http://blog.const.net.cn/a/8496.htm如果是BCB6 ...
- 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 ...
- BCB:WebBrowser 控件说明
控件文件:system32\shdocvw.oca shdocvw.dll 注册:regsvr32 shdocvw.dll WebBrowser 是 IE 内核做的 VB 控件, WebBrow ...
- VS2013+MFC串口控件的简单上位机
因为做东西,正好用到这里.所以就上传了文件分享一下. 利用VS带的MFC库,用起来还是比较方便的.空间的程序构架都是自动生成的,具体的程序自己加进去就行. 里面有整个的工程 还带有一个生成的EXE文件 ...
- BCB TLable控件透明背景属性
当我们希望一个Label适应它父窗口的背景时,设置Tranparent属性值就OK Transparent:true 透明 false 不透明
随机推荐
- LeetCode 39 Combination Sum(满足求和等于target的所有组合)
题目链接: https://leetcode.com/problems/combination-sum/?tab=Description Problem: 给定数组并且给定一个target,求出所 ...
- LeetCode 23 Merge k Sorted Lists(合并k个有序链表)
题目链接: https://leetcode.com/problems/merge-k-sorted-lists/?tab=Description Problem: 给出k个有序的list, 将其进行 ...
- RedHat 简易配置 VNC Server 与VNC View详细说明
首先下载Linux版本的VNC文件. 下载地址:http://www.realvnc.com/download/vnc/ 如:VNC-5.0.2-Linux-x86-RPM.tar.gz(其实解压出来 ...
- minix中时间转换的实现(asctime.c)
在minix2.0源代码中,有相当经典的时间转换函数实现(src\ src\ lib\ ansi\ asctime.c),今天我们就来分析一下asctime.c中的源码 首先引入几个相关的头文件: 1 ...
- Egret中的三种单例写法
1 普通的单例写法 as3中也是这么个写法. 缺点:每个单例类里都要写instance和getInstance. class Single{ private static instance:Singl ...
- 【CF603E】Pastoral Oddities cdq分治+并查集
[CF603E]Pastoral Oddities 题意:有n个点,依次加入m条边权为$l_i$的无向边,每次加入后询问:当前图是否存在一个生成子图,满足所有点的度数都是奇数.如果有,输出这个生成子图 ...
- 老师的blog整理
python基础部分: 宝哥blog: https://www.cnblogs.com/guobaoyuan/ 开哥blog: https://home.cnblogs.com/u/Neeo 女神笔记 ...
- 查看mobileprovision信息
security cms -D -i ***********.mobileprovision
- centos7.2 源码编译安装php7.2.4 apache2.4.37 https证书安装
一.php7.2.11源码安装 1.下载php7.2.11 wget http://cn2.php.net/downloads.php/php-7.2.11.tar.gz#### 2.安装依赖 yum ...
- es match、match_phrase、query_string和term的区别
(一)text字段和keyword字段的区别 以下给出一个例子: 首先建立一个索引和类型,引入一个keywork的字段: PUT my_index { "mappings": { ...