C++Builder串口通信设计(二)-发送字节包

发布者:SereneGardener最新更新时间:2015-08-17 来源: eefocus关键字:C++Builder  串口通信设计  发送字节包 手机看文章 扫描二维码
随时随地手机看文章
一、组成

1、PC机

2、STM32F10x

通过通过串口连接(由相应的硬件芯片支持:MAX323或USB转串口芯片等)。

设计一个由PC机通过串口发送数据包的程序。串口也可采用USB转串口。串口与单片机(stm32F10x通信)。单片机程序是收到数据后再通过串口发回去(发给PC机)。

二、设计工程

1、界面

一个mscomm控件;

一个memo1控件显示串口接收的内容;

三个button分别用于串口初始化、发送、终止程序;

C++Builder串口通信设计(二)-发送字节包
2、串口初始化化部分

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) //串口初始化
{
static st=0;
AnsiString s;
if(st==0)
{
try
{
Form1->MSComm1->_CommPort=3;//COM3( 采用USB转串口)
Form1->MSComm1->Settings="9600,n,8,1"; //初始化串口
Form1->MSComm1->InputMode=type; //采用全局变量type设置传入数据的格式,0表示文本形式 ,1表示二进制格式,初始默认取为1。
Form1->MSComm1->RThreshold=1;
Form1->MSComm1->PortOpen=true; //打开串口
Application->MessageBoxA("串口初始化成功","串口初始化",0);
}
catch(...)
//catch(EOleException&e)
{
Application->MessageBoxA("串口未连接好或已经打开","故障提示");
}

Button1->Caption="关闭";
st=1;
}
else
{
Form1->MSComm1->PortOpen=false;
Button1->Caption="打开";
st=0;
}
}
3、串口中断接收部分

//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender) //串口接收事件
{
AnsiString str; //声明一个AnsiString类型的变量
OleVariant rec; //声明一个用于接收数据的OleVariant变量。
int count;
int j;
unsigned char buf[128];

switch(MSComm1->CommEvent)
{
case comEvReceive: //接收事件
if(type==0) //字符型接收
{
str=MSComm1->Input;//收到字符串;
Memo1->Text=Memo1->Text+str+" "; //显示收到的字符串
}
else //type=1 为二进制接收
{
count=MSComm1->InBufferCount; //字节数
rec=MSComm1->Input; //取出接收缓冲器内容
for(j=0;j
{
buf[j]=rec.GetElement(j); //转换成字节类型
}
Memo1->Text=Memo1->Text+" ";
for(j=0;j
{
Memo1->Text=Memo1->Text+IntToHex(buf[j],2)+" "; //显示接收的字节(以十六进制显示)
}
}
break;
default: break;
} //switch(MSComm1->CommEvent)
}
//---------------------------------------------------------------------------

4、串口发送部分

//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender) //发送
{
int i;
OleVariant send;
int count=5; //发送包的字节数
unsigned char pc_to_stm32[5]={0x80,0x81,0xff,0x05,0x05}; //PC发出的数据包
send=VarArrayCreate(OPENARRAY(int,(0,count-1)),varByte); //创建一个动态数组
for(i=0;i
{
send.PutElement(pc_to_stm32[i],i); //填充待发送的数据元素
}
MSComm1->Output=send;//从串口发送
}

5、程序终止部分

void __fastcall TForm1::Button3Click(TObject *Sender) //退出应用程序
{
Application->Terminate();
}

三、运行结果

C++Builder串口通信设计(二)-发送字节包

关键字:C++Builder  串口通信设计  发送字节包 引用地址:C++Builder串口通信设计(二)-发送字节包

上一篇:C++builder串口通信设计(一)-串口接收数据
下一篇:MSP430G2553定时器中断实验

推荐阅读最新更新时间:2024-03-16 14:28

嵌入式实时操作系统μC/OS-II串口通信设计与实现
ARM是目前嵌入式领域中应用最广泛的RISC微处理器结构,以低成本、低功耗、高性能的特点占据了嵌入式系统应用领域的领先地位,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。STM32F103VB是基于ARM新内核Cortex-M3的通用微处理器,STM32V评估板是基于该芯片的学习板并集成了仿真调试器(Ulink_Me),可以方便用户快速学习和开发用户程序。目前常见的嵌入式系统有:WinCE、Linux、pSoS、VxWorks和μC/OS-II等。μC/OS-Ⅱ是专门为嵌入式系统应用设计的,具有源码公开、实时性好、可移植裁剪、高效稳定和教学科研免费使用等特点,已经成功移植到8、16、32和64位等多种
[嵌入式]
基于LabVIEW串口通信的数据采集串口收录系统设计
可视化编程软件LabVIEW不仅能很轻松地将各种软硬件连接起来,还提供了强大的后续数据处理能力。与传统仪器相比,虚拟仪器提高了仪器资源的可再用性和可移植性,只需在原有基础上作相应改动即可增强它的功能,无需更换硬件设备 。基于此,本文在研究LabVIEW的基础上,开发了基于LabVIEW的串口收录系统,以单片机为核心的硬件部分作为前端数据采集系统,可实现200 kHz的采样速率、16 bit的分辨率,具有采样率高、应用性强等优点。该收录系统将采集数据以曲线方式显示在上位机上,以二进制.dat格式记录,并且可回放记录的数据,这是该系统的创新点。 1 系统总体方案 系统总体方案框图如图1所示,主要由前端数据采集和上位机波形显示记录两大
[测试测量]
基于LabVIEW<font color='red'>串口通信</font>的数据采集串口收录系统<font color='red'>设计</font>
基于LabVIEW的单片机串口通信设计与实现
1.概述 在现代测控系统中,我们经常会采用上位机和下位机的开发控制模式。下位机主要是用来采集数据,可以通过嵌入式控制器、单片机控制器、PLC等来实现。上位机主要是图形界面,用来实时显示采集数据,并进行数据分析及处理,同时可以控制下位机。上位机的实现可以通过各种高级语言,比如VB、Delphi等以及NI公司的图形化虚拟仪器软件开发环境LabVIEW.由于LabVIEW采用的是图形化的编程方法,所以无论你是否有过编程经验,都可以快速、高效地设计用户界面,实现与控制硬件的通信,并进行数据分析和处理。如今LabVIEW已经渗透到工业测量的各个领域,与此同时在嵌入式、FPGA、DSP、实时控制等领域也发挥着巨大的作用。 2.本实例实
[测试测量]
基于LabVIEW的单片机<font color='red'>串口通信</font><font color='red'>设计</font>与实现
基于VB6.0的MSP430单片机与PC机串口通信设计
1 引言 随着计算机技术的不断发展,计算机应用在其发展过程中逐步形成两大分支,一是通用计算机,PC机为代表,着眼于高速数值运算和数据处理,但实时测控能力较弱。二是嵌入式微机,以 单片机 为代表,着重发展测控技术,但其数值运算和数据处理能力较弱。目前,在工业控制以及数据采集和数据处理的大型系统中,由于PC 机软件资源丰富,人机交互方便等优点。以 PC机 作为上位机,以单片机组成的控制单元作为下位机,较好地实现测控及显示,又能较快地实现数据采集和处理。逐渐成为现代工业控制领域的一个优化方案。 故提出了基于VB6.0 的PC 机与MSP430 单片机 串行通信的实现方法。以RS485 接口为基础,以PC机为上位机,以MSP430 系列
[电源管理]
基于VB6.0的MSP430单片机与PC机<font color='red'>串口通信</font><font color='red'>设计</font>
μC/OS—II的嵌入式串口通信模块设计
在嵌入式应用中,使用RTOS的主要原因是为了提高系统的可靠性,其次是提高开发效率、缩短开发周期。μC/OS-II是一个占先式实时多任务内核,使用对象是嵌入式系统,对源代码适当裁减,很容易移植到8"32位不同框架的微处理器上。但μC/OS-II仅是一个实时内核,它不像其他实时操作系统(如嵌入式Linux)那样提供给用户一些API函数接口。在μC/OS-II实时内核下,对外设的访问接口没有统一完善,有很多工作需要用户自己去完成。串口通信是单片机测控系统的重要组成部分,异步串行口是一个比较简单又很具代表性的中断驱动外设。本文以单片机中的串口为例,介绍μC/OS—II下编写中断服务程序以及外设驅动程序的一般思路。 1 μC/OS-II的
[应用]
金刚石合成控制系统中多串口通信技术的设计与实现
1 引言 传统的金刚石合成机控制系统是由一个PLC和一个可显示终端构成。这种传统的控制系统一般具有如下缺点: (1) 系统所有的工作都由PLC完成,其控制精度较差,致使合成的金刚石质量较差; (2) 显示终端的平面尺寸过小,这一方面使得操作人员观察系统的状态很不方便,另一方面也常常会引起误操作; (3) 金刚石合成工艺复杂,需控制的参数很多,但原控制系统不能对参数进行保存,这样在根据不同产品和工艺要求对部分参数进行调整时,每次都必须重新设置所有的参数,操作非常麻烦; (4) 界面不友好; (5)不能通过控制系统自动考核操作人员的工作质量。 为了提高控制精度、方便操作,开发新的控制系统迫在眉睫。笔者针对
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved