公司新装地磅,老总觉得软件编的太差,想重搞,我看了说明书,地磅与串口通讯方式如下:
XK3190-A9 仪表具有RS232 串行通讯串口,可与计算机串行通讯。
1. 通讯串口采用15 芯插头座(与大屏幕共用),其引脚定义见图2--5 中6、7、8 针。
2. 通讯串口采用RS232C,所有数据均为ASCII 码,每组数据有10 位组成,第1 位为起始位,第10位为停止位,中间8 位为数据位。
通讯方式分为: (1). 连续方式: 所传送的数据为仪表显示的当前称量(毛重或净重)。每帧数据由12 组数据组成 。格式如下:
1 02(XON) 开始
2 +或- 符号位
3 称量数据 高位
: 称量数据
:
: 称量数据
:
8 称量数据 低位
9 小数点位数 从右到左(0~4)
10 异或校验 高四位
11 异或校验 低四位
12 03(X0FF)
异或=2⊕3⊕……8⊕9我对说串口通讯不了解,做过几个管理软件,唉,希望大家帮忙一下,能有源代码更是感激涕零了
我看了叶帆的串口通讯源码,就是不太懂,唉,在此感谢叶帆
XK3190-A9 仪表具有RS232 串行通讯串口,可与计算机串行通讯。
1. 通讯串口采用15 芯插头座(与大屏幕共用),其引脚定义见图2--5 中6、7、8 针。
2. 通讯串口采用RS232C,所有数据均为ASCII 码,每组数据有10 位组成,第1 位为起始位,第10位为停止位,中间8 位为数据位。
通讯方式分为: (1). 连续方式: 所传送的数据为仪表显示的当前称量(毛重或净重)。每帧数据由12 组数据组成 。格式如下:
1 02(XON) 开始
2 +或- 符号位
3 称量数据 高位
: 称量数据
:
: 称量数据
:
8 称量数据 低位
9 小数点位数 从右到左(0~4)
10 异或校验 高四位
11 异或校验 低四位
12 03(X0FF)
异或=2⊕3⊕……8⊕9我对说串口通讯不了解,做过几个管理软件,唉,希望大家帮忙一下,能有源代码更是感激涕零了
我看了叶帆的串口通讯源码,就是不太懂,唉,在此感谢叶帆
解决方案 »
- 串口不能够触发OnComm()事件
- [求助]MFC开发的ActiveX,里面有个事件,可网页里响应这个事件
- 有人在VB中用自定义控件嵌套过openoffice的电子表格么?
- winsock给一java程序连续发包时出现错误
- 用VB代码将SQL Server的备份文件恢复到网络上的另外一台服务器的问题!
- 在VB中,想通过双击FILELISTBOX里的文件名,打开该文件,哪位大虾知道如何实现?
- 太急了,救命
- 请问谁有Seagate Crystal Reports 8的序列号
- 关于RichtextBox的显示的问题
- 求助!EXcel取其他表格数据插入到目标表格对应科目下并汇总
- 窗体锁定应怎样设置
- 请教几个小问题,感谢解答~~
串口的代码太多了..
使用MSCOMM控件主要是通过事件来处理串行口的交互,即当数据到达时,控件的OnComm的事件就会来捕获或处理这些通讯事件。而OnComm事件也可以用来捕获和处理通讯错误。在实际应用中,一个MSCOMM控件就对应一个串行口,所以如果要处理多个串行口的话,必须有相应数量的控件与之对应。下面介绍一下此控件的主要属性: CommPort---------设置或者返回串行端口号 Settings-------------用来设置和返回波特率,奇偶校验,数据位和结束位 PortOpen----------设置或者返回通讯端口的状态,也可以打开和关闭一个端口 Input----------------从接受缓冲区里获取或删除数据 Output-------------给发送缓冲区里写数据 另外对于OnComm事件来说,每当CommEvent的数值发生改变时就会产生这种事件,这就表明要么就是一个通讯事件的产生,要么是一个通讯错误产生。CommEvent属性里面包含了通讯事件或者产生的错误的编号。
那么为了能够更加清楚的说明上述问题,下面给出一个例程,例程要实现的功能很简单,就是在一个过程里给一个特定的串行口发送数据,然后在另外一个过程里实时检测此串行口以便一旦此串行口的发送缓冲区有数据就显示消息,如果发送空数据就会显示"无数据的字样"。界面如下: 主要核心代码如下:
Private Sub Command1_Click()
If Text1.Text = "" Then
List1.AddItem "发送缓冲区无数据"
Exit Sub
End If
MSComm1.Output = Text1.Text
End Sub
Private Sub Command2_Click()
Unload Me
End Sub'主要进行串口的初始化
Private Sub Form_Load()
'选择com1
MSComm1.CommPort = 1
'设置波特率为9.6kpbs,没有奇偶校验,8位数据位,1位结束位
MSComm1.Settings = "9600,N,8,1"
'读取全部的输入缓冲区
MSComm1.InputLen = 0
'端口打开
MSComm1.PortOpen = True
MSComm1.RThreshold = 10
MSComm1.SThreshold = 10
'以下就可以进行数据的发送了
End Sub'所有的通讯事件都可以激发MSComm1控件的OnComm事件
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
'此处的代码可以进行当串口的接受缓冲区里有RThreshold个字符的处理
Case comEvSend
'此处的代码可以进行当串口的发送缓冲区里有SThreshold个字符的处理
List1.AddItem "发送缓冲区有数据"
End Select
End Sub