RS232串口通信的程序怎么写啊??

RS232串口通信的程序怎么写啊??,第1张

c或vb中有mscomm控件很好用,我常用,以下是我此枝用delphi写的

with mscomm1 do begin

commport:=1 //端口号

settings:=9600,n,8,1 //端口设置

InputMode:=0 //设置或返回Input属性取回的数据的类型 0:文本 1:二进制

RThreshold:=1 //每次接收到掘槐字符即产生OnComm事件

SThreshold:=0 //传输缓冲区允许最小字森散敏符数

InBufferCount:=0 //清空接收缓冲区内容

InputLen:=0//为0时 Input一次读取整个缓冲区内容

DTREnable:=true//数据终端准备好

RTSEnable:=true//发送请求

end

mscomm1.Output:=edit1.text//发送

str:=mscomm1.input //接收

首液磨先 要Q上面有通讯口 232 485 都可以

如果是有232就直接和仪器的232对接,如果是485 或者422的话就要转接一下,可以自己买首埋告个转接盒子,也可以通过焊线加者明电阻的方式(接线图百度一大把)。

程序的话就要参考仪器的 通讯协议了。没有协议,没办法进行设置。

望采纳

VB可以使用MsComm控件来实现串口通信。

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

MSComm 控件提供下列两种处理通讯的方式:

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或

Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm

事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent

属性。

OnComm 事件

无论何时当 CommEvent 属性的值变化时,就产生 OnComm 事件,标志发生了一个通讯事件或一个错误。

OnComm 事件示例

下例说明如何处理通讯错误和事件。可以在相关的 Case 语句之后插入代码来处理特定的错误或事件。

Private Sub MSComm_OnComm()

    Select Case MSComm1.CommEvent

    ' 错误

        Case comEventBreak   ' 收到 Break。

        Case comEventCDTO   ' CD (RLSD) 超时。

        Case comEventCTSTO   ' CTS Timeout。

        Case comEventDSRTO   ' DSR Timeout。

        Case comEventFrame   ' Framing Error

        Case comEventOverrun   '数据丢失。

        Case comEventRxOver '接收缓冲区溢出。

        Case comEventRxParity ' Parity 错误。

        Case comEventTxFull   '传输缓冲区已满。

        Case comEventDCB   '获取 DCB] 时意外错蠢厅野误

         ' 事件

        Case comEvCD   ' CD 线状态变化。

        Case comEvCTS   ' CTS 线状态变化。

        Case comEvDSR   ' DSR 线状态变化。

        Case comEvRing   ' Ring Indicator 变化。

        Case comEvReceive   ' 收到 RThreshold # of chars.

        Case comEvSend   ' 传输缓冲区有 Sthreshold 个字符         

        Case comEvEOF   ' 输入数据流中发现 EOF 字符

    End Select

End Sub

MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

Output 属性,往传输缓冲区写数据流。该属性在设计时伏缺无效,在运行时为只读。

说明

Output 属性可以传输文本数据或二进制数据。用 Output 属性传输文本数据,必须定义一个包含一个字符串的

Variant。发送二进制数据,必须传递一个包含字节数组的 Variant 到

Output 属性。

正常情况下,如果发送一个 ANSI 字符串到应用程序,可以以文本数据的形式发送。如果发送包含嵌入控制字符、Null 字符等等的数据,要以二进制形式发送。

以下代码是在打开COM口后,能以二进制形式或字符串发送指令:

Option Explicit

   带喊 Dim sjByt() As Byte

Private Sub Command1_Click() '2进制发送

    ReDim sjByt(1 To 10) '设置为10个元素

    sjByt(1) = &H31

    sjByt(2) = &H32

    sjByt(3) = &H12

    sjByt(4) = &H31

    sjByt(5) = &H32

    sjByt(6) = &H33

    sjByt(7) = &H34

    sjByt(8) = &H35

    sjByt(9) = &H36

    sjByt(10) = &H37

    MSComm1.Output = sjByt '此命令执行一次发送10字节

End Sub

Private Sub Command2_Click()'文本字符串发送

    Dim sjStr As String

    sjStr = "Dim sjStr As String"

    MSComm1.Output = sjStr '此命令执行字符串发送

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12471018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存