主题:紧急求教,帮忙补写
由于刚学VB串口通信,又要急用,烦请高手将下面的程序补完,再补写一些数据发送后确认的部分(显示方式就是标签显示已发送吧),程序要实现的目的可参见最后的附录
Dim linshi As Long
Dim gaowei As Integer
Dim diwei As Integer
Private Sub Command1_Click()
'打开端口
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
'Text1.Text输入要发送的数据,下面将该数据分成高字节和低字节部分
linshi = Val(Text1.Text)
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
gaowei = linshi
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
diwei = Val(Text1.Text) - linshi
'qufan的结果是高字节和低字节的和的补码(第九位丢掉)
src = gaowei + diwei
qufan = 256 - src
'MSComm1.Output要发送的是依次连续的 固定值OX5A,高字节,低字节,补码,望达人相助,将下面的写完,不甚感激
MSComm1.Output =
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
End Sub
附录:10-12GHz频率合成器控制方法
1. 通信协议
串口属性:RS232串口,波特率9600bps,1个起始位,8个数据位,1个停止位,无校验。
2. 数据帧格式定义
一个数据帧由高到低排列依次为:帧标识(1个字节)+数据(2个字节)+校验(1个字节)。字节的发送顺序为:先发高字节,再发低字节。
帧标识 数据高8位 数据低8位 校验和
高字节 低字节
帧标识:
固定数值0X5A.
数据:
范围是 (0-10,10000~12000) 衰减控制的数据是0-10,频率控制的范围是10000-12000 (详见码表)
10000(DEC)=0x2710(HEX) 高8位是0X27,低8位是0X10.
校验和:
是两个数据位的和再取其补码(反码加一)
例:上面表格的数据是0X27 和0X10取和为0Xc9
0X27+0X10=0X37(十六进制)
0X37的反码为0Xc8,加1为0Xc9 所以校验和为0Xc9.
3. 返回值
如果频率合成器收到的数据正确,那么返回一个字节(0XFF),否则返回一个字节(0X00)
引脚 电特性 引脚 电特性
1 空 6 空
2 RXD 7 空
3 TXD 8 空
4 空 9 空
5 地
4. RS232 (9芯接口定义)
望达人相助,不甚感激,我的邮箱是jzz514@163.com
Dim linshi As Long
Dim gaowei As Integer
Dim diwei As Integer
Private Sub Command1_Click()
'打开端口
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
'Text1.Text输入要发送的数据,下面将该数据分成高字节和低字节部分
linshi = Val(Text1.Text)
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
linshi = linshi \ 2
gaowei = linshi
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
linshi = linshi * 2
diwei = Val(Text1.Text) - linshi
'qufan的结果是高字节和低字节的和的补码(第九位丢掉)
src = gaowei + diwei
qufan = 256 - src
'MSComm1.Output要发送的是依次连续的 固定值OX5A,高字节,低字节,补码,望达人相助,将下面的写完,不甚感激
MSComm1.Output =
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
End Sub
附录:10-12GHz频率合成器控制方法
1. 通信协议
串口属性:RS232串口,波特率9600bps,1个起始位,8个数据位,1个停止位,无校验。
2. 数据帧格式定义
一个数据帧由高到低排列依次为:帧标识(1个字节)+数据(2个字节)+校验(1个字节)。字节的发送顺序为:先发高字节,再发低字节。
帧标识 数据高8位 数据低8位 校验和
高字节 低字节
帧标识:
固定数值0X5A.
数据:
范围是 (0-10,10000~12000) 衰减控制的数据是0-10,频率控制的范围是10000-12000 (详见码表)
10000(DEC)=0x2710(HEX) 高8位是0X27,低8位是0X10.
校验和:
是两个数据位的和再取其补码(反码加一)
例:上面表格的数据是0X27 和0X10取和为0Xc9
0X27+0X10=0X37(十六进制)
0X37的反码为0Xc8,加1为0Xc9 所以校验和为0Xc9.
3. 返回值
如果频率合成器收到的数据正确,那么返回一个字节(0XFF),否则返回一个字节(0X00)
引脚 电特性 引脚 电特性
1 空 6 空
2 RXD 7 空
3 TXD 8 空
4 空 9 空
5 地
4. RS232 (9芯接口定义)
望达人相助,不甚感激,我的邮箱是jzz514@163.com