VBNET开发全功能串口调试助手.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB.NET开发全功能串口调试助手 (含完整工程) ? 小记:VB.NET的串口通信用了很长时间了,也只用Write和Read这样的方法,以前都是用这种方式做上位机软件,如此足矣。而前几天研究GSM模块时对串口返回的数据总是把握不好,参考开发板附送的例程,发现采用SerialPort的DataReceived事件,可以实现中断触发式的数据接收。于是想到要自己做一个串口调试助手,在实现基本功能的前提下增加一些方便自己调试的功能。经过断断续续的编写,就做成了下面这个小软件: ? ? 这个软件能够实现串口调试助手的全部功能,经过通信测试,数据接收性能不亚于呼啸工作室的SComAssistant2.2,通过加大输入缓冲区,可以满足大量数据接收。 VB.NET的串口通信主要使用VS自带的SerialPort控件,而不是早先的MSComm,更具有兼容性,这也是很久以前就放弃VB改用.NET的直接原因。该控件的主要方法、属性如下(该数据来自VS的MSDN帮助库): ? 方法 说明 Open 打开一个新的串行端口连接。 Close 关闭端口连接,将?IsOpen?属性设置为?false,并释放内部?Stream对象。 Read 已重载。?从?SerialPort?输入缓冲区中读取。 ReadByte 从?SerialPort?输入缓冲区中同步读取一个字节。 ReadChar 从?SerialPort?输入缓冲区中同步读取一个字符。 ReadExisting 在编码的基础上,读取?SerialPort?对象的流和输入缓冲区中所有立即可用的字节。 ReadLine 一直读取到输入缓冲区中的?NewLine?值。 ReadTo 一直读取到输入缓冲区中的指定?value?的字符串。 Write 已重载。?将数据写入串行端口输出缓冲区。 WriteLine 将指定的字符串和?NewLine?值写入输出缓冲区。 DiscardInBuffer 丢弃来自串行驱动程序的接收缓冲区的数据。 DiscardOutBuffer 丢弃来自串行驱动程序的传输缓冲区的数据。 GetPortNames 获取当前计算机的串行端口名称数组。 属性 说明 PortName 获取或设置通信端口,包括但不限于所有可用的?COM?端口。 BaudRate 获取或设置串行波特率。 DataBits 获取或设置每个字节的标准数据位长度。 Parity 获取或设置奇偶校验检查协议。 StopBits 获取或设置每个字节的标准停止位数。 IsOpen 获取一个值,该值指示?SerialPort?对象的打开或关闭状态。 BytesToRead 获取接收缓冲区中数据的字节数。 BytesToWrite 获取发送缓冲区中数据的字节数。 Encoding 获取或设置传输前后文本转换的字节编码。 ReadBufferSize 获取或设置?SerialPort?输入缓冲区的大小。 ReceivedBytesThreshold 获取或设置?DataReceived?事件发生前内部输入缓冲区中的字节数。 WriteBufferSize 获取或设置串行端口输出缓冲区的大小。 ?想要通过串口收发数据,就需要对串口进行配置,包括设置端口、波特率、数据格式(如COM1端口、9600bps、8位数据位、无校验位、1位停止位)等属性,之后通过Open方法打开串口。打开串口可通过手动指定,也可以使用GetPortNames方法获取计算机中存在的串口。如果打开出错,则可能是串口不存在或者已被占用。下面是相应代码: ????Private?Sub?SerialPortOpen() ????????On?Error?GoTo?Err ????????If?SerialPort.IsOpen =?True?Then?SerialPort.Close()?避免重复打开端口 ????????SerialPort.Open() ????????LabelCOMStatus.Text =?串口已打开 ????????Exit?Sub ? Err:????MsgBox(串口不存在或已被占用!?+ vbNewLine + ErrorToString())?出现错误,显示错误信息 ????End?Sub ? 如果想要在串口中支持中文字符收发,则可在初始化时设置串口控件的编码: SerialPort.Encoding = System.Text.Encoding.Default ? 发送数据通过Write方法来完成,由于串口调试助手需要支持文本和16进制,需要加入转换代码: ????Private?Sub?ButtonSendData_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.

文档评论(0)

ma982890 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档