菜单
  

    (3) 打开与关闭串口
    在创建一个SerialPort 对象,设置串口属性后,可以通过 Open()方法打开串口。数据读写完成后,可以通过Close()方法关闭串口。根据经验,对于有些系统,在打开
    串口后,还需要将RtsEnable设置为True,这样才能读写数据,否则不能正常读写数据。
    本程序中,打开串口的相关程序在SearchPort函数中,当搜索本机可用串口时,便会打开串口。打开串口的程序语句为:
         If SerialPortStatus = False Then
             Try                          
                 SerialPort1.Open()
                 Threading.Thread.Sleep(500)
                 Dim Version As String = ""
                 Version = SerialPort1.ReadExisting()
                 If InStr(Version, "JB5000") > 0 Then
                     SerialPortStatus = True
                     Return True
                 Else
                     SerialPort1.Close()
                     Return False
                 End If
              Catch ex As Exception
                 ToolStripButton1.Enabled = False
                 ToolStripButton3.Enabled = True
                 Return False
              End Try
          Else
              Try
                  SerialPort1.PortName = ComName
                  SerialPort1.Open()
                  Return False
               Catch ex As Exception
                  Return False
               End Try
         End If
    同样,关闭串口的程序如下:
         Private Sub ClosePort()
             SerialPort1.Close()
     End Sub
    (4) 利用DataReceived事件进行数据接收
    SerialPort提供了DataReceived事件。当有数据进入时,该事件被触发。该事件的触发由操作系统决定,当有数据到达时,该事件在辅助线程中被触发。辅助线程的优先级比较低,因此并不能确保每个字节的数据到达时,该事件都被触发。在使用该事件接收数据时,最好对定义通讯协议格式,添加桢头和桢尾。在DataReceived事件中接收数据时,把数据放在数组中或字符串中缓冲起来,当接收的包含桢头和桢尾的完整数据时,再进行处理。
        本程序在DataReceived事件的通用过程中用到了If...Then...End If语句。如果软件正在运行且布尔型变量SerialPortStatus的值是True,即本机存在可用串口,那么就会用Try...Catch语句,Try语句里面用到了ReadTo方法,串口会一直读取数据,直到输入缓冲区中的"F"为止。F为数据包或指令包的包尾。然后赋值给字符型数组ReceiveBuff。在异步调用的函数的参数里面,会调用CallbackShow通用过程。这个CallbackShow通用过程里面用到了两个If...Then...End If语句。第一个If...Then...End If语句,如果软件正在运行,那么调用通用过程WriteToFile。通用过程WriteToFile主要实现了将数据写入文件的功能,后面将会具体提到。第二个If...Then...End If语句,如果字符型数组ReceiveBuff的长度大于0,那么调用JudgeTaskMode函数。JudgeTaskMode函数里面有关于数据接收的具体形式,是根据协议里面的指令包和数据包对接收到的数据做出具体的反应。
  1. 上一篇:双谱图像配准技术研究+powell算法
  2. 下一篇:基于DSP的雷达恒虚警检测技术研究
  1. 超大规模集成电路中软模块的布局

  2. 光电系统近似模型研究

  3. PID控制在非线性时延离散混沌系统中的应用

  4. 基于差分进化算法的自动...

  5. 基于混沌的图像加密通信...

  6. MPS模块化生产系统的开发及研究+PLC梯形图

  7. HFSS的SIR微带带通滤波器设计

  8. 中考体育项目与体育教学合理结合的研究

  9. 乳业同业并购式全产业链...

  10. 河岸冲刷和泥沙淤积的监测国内外研究现状

  11. 当代大学生慈善意识研究+文献综述

  12. 十二层带中心支撑钢结构...

  13. 杂拟谷盗体内共生菌沃尔...

  14. 酸性水汽提装置总汽提塔设计+CAD图纸

  15. 大众媒体对公共政策制定的影响

  16. java+mysql车辆管理系统的设计+源代码

  17. 电站锅炉暖风器设计任务书

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回