VB做本机的串口通信(采用事件驱动) 2 ,3脚已连接,运行没问题,但点击发送就有问题,不知错在哪里
'串口初始化PrivateSubForm_Load()MSComm1.CommPort=1'设置通信端口号为COM1MSComm1.Settings="9600,N,8,...
'串口初始化Private Sub Form_Load() MSComm1.CommPort = 1 '设置通信端口号为COM1MSComm1.Settings = "9600,N,8,1" '设置串口参数 MSComm1.InputMode = 0 '接收文本型数据 MSComm1.RThreshold = 1 '接收缓冲区每收到一个字符都会使 MSComm 控件触发OnComm 事件 MSComm1.PortOpen = True '打开通信端口1End Sub
'把字符通过串口发送出去'启动定时器Private Sub Cmdsend_Click() If Textsend.Text = "" Then pp = MsgBox("发送的数据不能为空!", 16) End If MSComm1.Output = Trim(Textsend.Text)End Sub
'MSComm 的 OnComm 事件程序 '由 CommEvent 属性值的不同,将各自的程序代码写入相关的子程序中 '只要 RThresold 中的设定字符数到达时便会使得 CommEvent 属性值变成 comEvReceive'因此接收的子程序便会被执行
Private Sub MSComm1_OnComm()Dim buf$ Select Case MSComm1.CommEvent '通过取代每一个 case 表达式来处理每个事件与错误 Case comEvCD ' CD 线的状态发生变化 Case comEvCTS ' CTS 线的状态发生变化 Case comEvDSR ' DSR 线的状态发生变化 Case comEvReceive buf = Trim(MSComm1.Input) '将缓冲区内的数据读入buf变量中 Case comEvSend End Select TextReceive.Text = TextReceive.Text & bufEnd Sub
'停止程序运行Private Sub Cmdquit_Click()Unload MeEnd Sub'关闭通信端口, Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = FalseEnd Sub
不管是输入文字还是数字 都有问题 展开
'把字符通过串口发送出去'启动定时器Private Sub Cmdsend_Click() If Textsend.Text = "" Then pp = MsgBox("发送的数据不能为空!", 16) End If MSComm1.Output = Trim(Textsend.Text)End Sub
'MSComm 的 OnComm 事件程序 '由 CommEvent 属性值的不同,将各自的程序代码写入相关的子程序中 '只要 RThresold 中的设定字符数到达时便会使得 CommEvent 属性值变成 comEvReceive'因此接收的子程序便会被执行
Private Sub MSComm1_OnComm()Dim buf$ Select Case MSComm1.CommEvent '通过取代每一个 case 表达式来处理每个事件与错误 Case comEvCD ' CD 线的状态发生变化 Case comEvCTS ' CTS 线的状态发生变化 Case comEvDSR ' DSR 线的状态发生变化 Case comEvReceive buf = Trim(MSComm1.Input) '将缓冲区内的数据读入buf变量中 Case comEvSend End Select TextReceive.Text = TextReceive.Text & bufEnd Sub
'停止程序运行Private Sub Cmdquit_Click()Unload MeEnd Sub'关闭通信端口, Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = FalseEnd Sub
不管是输入文字还是数字 都有问题 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询