VB通讯数据局限性分析与对策.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  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通讯数据局限性分析与对策

VB通讯数据局限性分析与对策   【摘要】随着经济的不断发展以及科学技术水平的不断提高,现我国通讯技术的发展也是日新月异,用于通讯技术的编程也可利用很多种语言及方式,如VB、VC等编程语言,而VB则成为了现在使用最为广泛的编程方式。但是,VB对于通讯的转化及管理却存在一定的局限性。文章分析了利用VB编程的串行通讯控件的有关特点,体现了其局限性,同时针对其局限性提出了相关的解决措施。   【关键词】VB通讯数据;局限性;Byte型变量   引言   我国科学技术水平在有关科学研究人员的努力下,现已达到一定高度,不管是在工业还其他通讯行业等,其科技水平都有了很大程度的提高。现我国通讯行业随着科学技术的提高也呈现出飞速发展的势态,用于处理通讯数据的语言及方式也在不断改善及更新,现用于通讯行业最为普遍的是VB语言,其编程方便快捷,能以最简单的方式实现所需要功能。但是,其因本身编程、字节及字符方面所存在的问题导致其在处理数据时存在一定局限性,针对这个问题,我们进行了具体分析并提出了相应的解决对策。   1VB通讯数据的局限性   1.1VB在通讯编程中所存在的问题   通过对长期经验的总结及分析我们可知,VB语言在众多的实际编程当中存在一个共同的缺点,即因VB语言处理通讯数据时是利用String型变量来进行的,而导致其只能处理ASCII码为00H-7FH的文本类字符,对于从单片机处发送过来的80H-0FFH字节不能进行处理。对于这个问题,曾有人提出采用VB5.0所携带的Example程序中的StrConv()函数来解决,但是结果表明此方法并不能处理这一问题。介于此问题的未解决,现单片机若想要把处于存储单元当中的某个字节如OABH发送到PC机上,就必须先将其拆成“A”和“B”这两个字符,然后再将其分别以41H以及42H的形式改送出去。然而,事实证明这种方法不太适合通讯数据的处理。所以,VB实现不了PC机与单片机之间的串行通讯。   1.2VB语言中的字符与字节概念不同   对于VB语言来说,字符与字节是两个完全不同的概念。VB系统在出现VB3.0以后,其将variant型变量引入系统当中,对于通讯控件所接收及所发送的数据的存储,其都是以variant的型变量进行操作的,因为这样可以在处理数据时一次性将多个字符进行处理,而不必对字节一一进行处理,并且具有强大的灵活性。虽然VB系统当中的variant型变量可以处理多种类型的数据,但其同时存在一些不能处理的数据类型,而且因其灵活性同时也会产生很多原因未知的错误。比如说位于单片机存储器中的数据是按字节的方式进行存储的,在通讯的过程当中其接收与发送也都是按字节进行,所使用进制数为00H-0FFH型的16进制数,通常来说对这种数据的处理是采用数值的方式来操作。而在VB在引入variant型变量后,其通讯控制会将所收到的字节以variant型进行存储,其也可通过赋值给String型变量的方式将其以字符的形式显示出来,但是其却不能通过赋值给Integer型变量的方式将其作为数值进行处理,若强行编程,系统就会存在编译错误。这样,若单片机将某个字节如OABH以字节41H的形式发过来,在VB系统中可将其显示为“A”,但是整个字节OABH却不能显示。即使利用系统中的Asc()函数来将“A”再次转换为所对应的ASCII码的41H,Asc()函数也不能处理单片机所发送过来的OABH这个字节。   通过对这个问题产生的原因进行分析,我们明白了,因标准的ASCII码只能处理ASCII码为00H-7FH的文本类字符,所以其在将字节进行数值转换时也只能对此类字符进行正确地转换。除此之外,为能将更多的字符进行存储,Windows95以及NT等对于文本字符比如汉字等的存储都是以Unicode的方式将其作为两个字节进行操作的,而且其也都是利用字符代码来替换ACSII码。虽然VB也兼容Unicode,但是因其在字符与字节之间的体现不一样,且其与DOS以及单片机当中的字符概念完全不同,所以在利用VB进行编程时要特别注意。   2解决VB通讯数据局限性对策   针对于VB在处理通讯数据时所存在的局限性,我们尝试着用Byte型的数据来解决。在VB系统当中存在一种Byte型的数据,若将字节以Byte型变量进行存储,那么其只占一个字节,且其可取的数值在0到255之间,也就是我们所说的00H-0FFH型ASCII码。由此可以看出,Byte型数据和单片机当中的字节概念是相同的。所以,若要实现PC机与单片机的串行通讯,对于所发送过来的数值为00H-0FFH的字节能够全部正确接收,就必须摒弃String型变量以及字符的概念,将所接收及发送的数据都以字节的形式进行处理。在对数据进行接收时,要利用AscB()函数,因为其可在接

文档评论(0)

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

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

1亿VIP精品文档

相关文档