怎样获取串口地址

怎样获取串口地址,第1张

如果是在 *** 作系统中,你是不需要知道串口地址的。直接用设备名打开就可以。系统内的设备名可以用devs查看,一般是/tyCo/0和/tyCo/1

如果是在bootrom中,可以用BSP提供的函数,一般在sysSerialc中,sysChanGet(i)。设置中断或查询方式后然后输出

MSCOMM控件在VB6的企业版中有,需通过部件添加方式加载。

Private Sub MSComm_OnComm()

Dim bytInput() As Byte

Dim intInputLen As Integer

Select Case frmMainctrMSCommCommEvent

Case comEvReceive

If blnReceiveFlag Then

If Not frmMainctrMSCommPortOpen Then

frmMainctrMSCommCommPort = intPort

frmMainctrMSCommSettings = strSet

frmMainctrMSCommPortOpen = True

End If

'此处添加处理接收的代码

frmMainctrMSCommInputMode = comInputModeText '按ASCII接收

intInputLen = frmMainctrMSCommInBufferCount

ReDim bytInput(intInputLen)

bytInput = frmMainctrMSCommInput

Text1 = bytInput

Text2 = Text1

jscd = Len(Text1)

If Left(Text1, 1) <> Chr(27) Or jscd > 25 Then '

frmMainLabel3BackColor = vbRed

frmMainLabel3ForeColor = vbWhite

frmMainLabel3Caption = "接收信号出错!"

ElseIf Left(Text2, 1) = Chr(27) And Mid(Text2, 25, 1) = Chr(13) Then

frmMainLabel3BackColor = vbGreen

frmMainLabel3ForeColor = vbBlack

frmMainLabel3Caption = "接收信号正常!"

If Left(Text2, 6) = Chr(27) & "R0032" And jscd = 25 Then

If Val(fa2) >= 0 And Len(fa2) = 4 Then

fa2 = "0" & Mid(fa2, 2, 3)

End If

frmMaintxtSend = Chr(27) & fa0 & fa1 & "9999" & zhenkong & fa2 & fa3 & fa4 & Chr(13)

lenTxtSend = Len(txtSend)

frmJishiLabel8Caption = txtSend

frmJishiLabel11Caption = lenTxtSend

If lenTxtSend = 24 Then

Call commFasong

Else

frmMainLabel3BackColor = vbRed

frmMainLabel3ForeColor = vbWhite

frmMainLabel3Caption = "发送信号出错!"

End If

blL1 = Mid$(Text2, 19, 2)

If blL1 = "01" Then

record_jmm(0) = Val(Mid$(Text2, 21, 4)) / 10 '制品1温度

ElseIf blL1 = "02" Then

record_jmm(1) = Val(Mid$(Text2, 21, 4)) / 10 '制品2温度

ElseIf blL1 = "03" Then

record_jmm(2) = Val(Mid$(Text2, 21, 4)) / 10 '制品3温度

ElseIf blL1 = "04" Then

record_jmm(3) = Val(Mid$(Text2, 21, 4)) / 10 '制品4温度

ElseIf blL1 = "05" Then

record_jmm(4) = Val(Mid$(Text2, 21, 4)) / 10 '制品5温度

ElseIf blL1 = "06" Then

record_jmm(5) = Val(Mid$(Text2, 21, 4)) / 10 '制品6温度

End If

record_jm(0) = Val(record_jmm(0))

record_jm(1) = Val(record_jmm(1))

record_jm(2) = Val(record_jmm(2))

record_jm(3) = Val(record_jmm(3))

record_jm(4) = Val(record_jmm(4))

record_jm(5) = Val(record_jmm(5))

blL = Mid$(Text2, 7, 6)

Call Hex_bin '输出口状态鉴别

blLg = Mid$(Text2, 13, 6)

Call hex_bin1 '输出口故障状态鉴别

txtSend = ""

Else

txtSend = ""

End If

End If

If Not blnAutoSendFlag And Not blnReceiveFlag Then

frmMainctrMSCommPortOpen = False

End If

End If

End Select

End Sub

以上是一段MSCOMM的ONCOMM事件代码,接收的数据按上下位机约定取出赋值于全局变量,在其它窗体进行数据记录(写入数据库)至于数据分析确如一楼说的可以海阔天空,通过数据控件及SQL语句来完成任务

以下提供MSDN参考:

OnComm 常数

常数 值 描述

comEvSend 1 发送事件。

comEvReceive 2 接收事件。

comEvCTS 3 clear-to-send 线变化。

comEvDSR 4 data-set ready 线变化。

comEvCD 5 carrier detect 线变化。

comEvRing 6 振铃检测。

comEvEOF 7 文件结束。

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

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。

在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。

SThreshold 属性

在 MSComm 控件设置 CommEvent 属性为 comEvSend 并产生 OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数。

说明

若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。若设置 Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生 OnComm 事件。

如果在传输缓冲区中的字符数小于 value,CommEvent 属性设置为 comEvSend,并产生 OnComm 事件。comEvSend 事件仅当字符数与 Sthreshold 交叉时被激活一次。例如,如果 Sthreshold 等于 5,仅当在输出队列中字符数从 5 降到 4 时,comEvSend 才发生。如果在输出队列中从没有比 Sthreshold 多的字符,comEvSend 事件将绝不会发生。

CommEvent 属性包含实际错误或产生 OnComm 事件的数码。注意,设置 Rthreshold 或 Sthreshold 属性为 0,分别使捕获 comEvReceive 和 comEvSend 事件无效。

你的意思是用VB编程通过串口发送指令给其他设备,然后得到设备的返回信息?

如果是的话,可以用VB60里的串口控件MScomm实现,具体的控件 *** 作,网上搜下太多了。另外可以用vbnet(2005以上)里面的串口类SerialPort实现,这个类网上也有很多的。

代码的话,你要提供电脑端串口发送的指令表,及设备的返回信息表。这样便于判断指令的执行是否正确。还有根据你提供的分析,请求指令应该是宏定义

IRP_MJ_CREATE 我理解应该对应一个数字 如0x21(十六进制)

IOCTL_SERIAL_SET_BAUD_RATE= 0x22

……

就是说从电脑串口发送0x21,即打开串口; 发送0x22,设置波特率为38400,等等。

然后设备返回信息,如0x100表示串口打开成功,等等。

请把问题再描述清楚些。

开发环境,以你现在最常用的环境为好,三个选项中推荐OFFICE2007。

串口通信控件显然是第三方的,在所有的电脑上需要安装后才能使用。

电脑上的控件多少与 *** 作系统及所安装软件的多少、种类相关,缺少的控件一般在需要时再进行安装。控件的安装有的是跟随应用程序直接安装,有的找到控件的文件(通常是DLL或OCX文件),使用regsrv32命令注册一下就可以了。

以上就是关于怎样获取串口地址全部的内容,包括:怎样获取串口地址、js怎样获取串口信息、用VB使串口返回信息,代码怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/10145442.html

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

发表评论

登录后才能评论

评论列表(0条)

保存