你现在位置:首页>技术论文>数据通讯>正文
Delphi编写串口通讯方法
日期:2008-2-24 11:23:56 来源:本站整理  
点击: 作者:未知
点击【】放大字体.
前段时间做了个东西, 计算机和单片机通讯,用到了串口编程,上位机用的是delphi,下位机用ats51,程序也做完了,顺便把Delphi串口编程给大家介绍以下.
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Delphi串口通讯可以同过以下几种方式:
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

1.windows API函数。
WWW_P※LCJS_COM-PLC-)技.术_网

2.Spocmm组件。
P.L.C.技.术.网——可编程控制器技术门户

3.PComm 库函数。
WWW_P※LCJS_CO※M-PLC-技-.术_网

4.Mscomm控件。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

 
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

由于API函数实现起来比较麻繁,这里就不做介绍了,主要介绍其它三种方式 
plcjs.技.术_网

 
WWW_P※LCJS_CO※M-PLC-技-.术_网

   Mscomm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法.它提供了两种处理通信的方法:事件驱动方式,查询方式。
WWW_PLCJS_COM-PLC-技.术_网

  1事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中接收到字符等,在种情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。
WWW_PLCJS@_COM%-PLC-技.术_网

  2查询方式实质上还是事件驱动。查询方式是通过检查 CommEvent 属性的值来查询事件和错误,并做相应的处理。在有些情况下,这种方式还是显得挺便捷的。
WW.W_PLCJS_COM-PLC-技.术_网

MSComm 控件的常用属性
WWW_P※LCJS_CO※M-PLC-技-.术_网

  CommPort 设置并返回通讯端口号。 
WWW.PLCJS.COM——可编程控制器技术门户

  Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 
WWcW_PLCJS_COM-PLC-技.术_网

  PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。 
WWW_PLCJS_COM-PLC-技.术_网

  Input 从接收缓冲区返回和删除字符。 
WWW_PL※CJS_COM-PLC-技.术_网

  Output 向传输缓冲区写一个字符串。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

 
WWcW_PLCJS_COM-PLC-技.术_网

PComm 库函数
W1WW_P4LCJS_COM-PLC-技.术_网

  PComm 库函数是台湾MOXA公司提供的,他为用户提供了基于win32 api的开发接口。 
P.L.C.技.术.网——可编程控制器技术门户

  PComm库函数分为7大类
WWW_P※LCJS_CO※M-PLC-技-.术_网

   控制函数
WWW_PLCJS_COM-PLC-技.术_网

   数据输入函数
WWW_P※LCJS_COM-PLC-)技.术_网

   数据输出函数
P.L.C.技.术.网——可编程控制器技术门户

   状态函数
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

   事件驱动函数  
WWW_PLC※JS_COM-PmLC-技.术_网

   传输文件函数
WWW_P※LCJS_CO※M-PLC-技-.术_网

   特殊设定函数
WW.W_PLCJS_COM-PLC-技.术_网

 
WWW_PLC※JS_COM-PmLC-技.术_网

  控制函数主要包括sio_open,sio_close,sio_ioct,sio_flush     
WW.W_PLC※JS_C,OM-PL,C-技.术_网

  sio_open(PortNum)  打开串口
W1WW_P4LCJS_COM-PLC-技.术_网

  sio_close(PortNum) 关闭串口
WWW_PLCJS@_COM%-PLC-技.术_网

  sio_ioct(PortNum, baud, mode)设置串口的工作模式,包括 波特率,数据位,停止位,效验等 
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

  sio_flush(portNum,func)清除发送,接收缓冲区 其中func 为0清空输入 ,为1清空输出,为2清空输入输出 
WW.W_PLCJS_COM-PLC-技.术_网

 
WW.W_PLC※JS_C,OM-PL,C-技.术_网

  数据输入函数主要包括sio_getch,sio_read 
W1WW_P4LCJS_COM-PLC-技.术_网

  sio_getch(PortNum)  从输入缓冲区读一个字符
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

  sio_read(PortNum,buf,len) 从输入缓冲区读指定个数的字符
WWW_PLCJS@_COM%-PLC-技.术_网

 
——可——编——程——控-制-器-技——术——门——户

  数据输入函数主要包括sio_putch  sio_write
WWcW_PLCJS_COM-PLC-技.术_网

  sio_putch(PortNum) 写一个字符到输出缓冲区
WWW_P※LCJS_CO※M-PLC-技-.术_网

  sio_write(PortNum,buf,len)写指定个数的字符到输出缓冲区
WWW.PLCJS.COM——可编程控制器技术门户

 
WWW_PLCJS@_COM%-PLC-技.术_网

  状态函数主要包括 sio_lstatus,sio_getbaud,sio_getmode
WWcW_PLCJS_COM-PLC-技.术_网

  sio_lstatus(portNum)获取串口的CTS,DSR,DCD,RI线的状态
WW.W_PLCJS_COM-PLC-技.术_网

  sio_getbaud(portNum)获取串口的波特率
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

  sio_getmode(portNum)获取串口的工作模式。对应sio_ioct函数
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

 
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

  事件函数主要包括 sio_term_irq,sio_cnt_irq 
P.L.C.技.术.网——可编程控制器技术门户

  sio_term_irq(portNum,func,code) 当接收到指定字符时响应事件,func为回调函数名,code为指定的字符
plcjs.技.术_网

  sio_cnt_irq((PortNum,func,count) 当接收到指定个数字符时响应事件,func为回调函数名,count接收的个数
WWW_P※LCJS_CO※M-PLC-技-.术_网

 
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  传输文件函数主要包括sio_FtASCIIRx,sio_FtASCIITx   
WWW_P※LCJS_CO※M-PLC-技-.术_网

  sio_FtASCIITx(portNum,fname,func,key) 发送一个文本文件 
WWW_PL※CJS_COM-PLC-技.术_网

  sio_FtASCIIRx(portNum,fname,func,Key,sec)接收一个文本文件 
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

 
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

由PComm 库提供的函数可以看出来PComm的接口还是挺丰富的。并且MOXA公司为我们提供PComm详细的使用说明。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

 
P.L.C.技.术.网——可编程控制器技术门户

SPcomm是专为delphi开发的组件,虽然它也是封装了windows api,但是我们可以看到它的源代码。它提供了事件驱动的方式接收数据,在编程的时候,我们可以在OnReceiveData函数中接收到数据,并做相应的处理,
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

SPcomm组件的主要属性:
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

  CommName:设置通讯端口
WWW_PL※CJS_COM-PLC-技.术_网

  BaudRate:设置端口波特率
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  StartComm:打开串口 
WWW_PLCJS@_COM%-PLC-技.术_网

  StopComm:关闭串口
WW.W_PLCJS_COM-PLC-技.术_网

  WriteCommData:向串口写数据函数
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

  OnReceiveData:接收数据事件
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

 
WW.W_PLC※JS_C,OM-PL,C-技.术_网

第三方组件或控件封装了API函数,简化了编程的难度,并提供详细帮助。 
评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行