VB.Net 中的串口操作问题

昨天终于把vb.net 中的串口通信问题解决了,整理一下串口通信的方法有以下几点: 1. 首先看一下C:/WINDOWS/system32下面有没有MSCOMM32.OCX 或者MSCOMM.OCX文件。我的电脑因为装有vb6所以有mscomm32.ocx,没有的话可以参靠这篇文章的方法试试。(http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/112.html) 2. 在vb.net 的添加控件的对话框中点进COM Component ,选上mscomm32.ocx 所对应的控件确定即可。 3. 在需要的地方拖进这个控件就可以用了,基本用法在上面的文章中讲述得很清楚,需要注意以下几点: 串口波特率的设置问题:由于每台电脑对于串口都有一个默认的波特率,所以在程序中需要按要求重新设置,而且如果串口的操作分布在不同的页面或函数中还需要在使用之前都设置到,否则会使用默认设置。 必须处理好串口的打开和关闭,当然如果没处理好肯定会有错误提示。 设置好Comm的 RThreshold 属性: RThreshold=1表示接收到数据后引发OnComm事件,如果SThreshold=1表示发送数据的时候会引发OnComm事件,在这个事件里就可以写发送或接收数据的一些操作。 另外就是根据程序的要求在传送和接受数据时需要用到计数器来延时。 目前只是碰到上面这些问题,如果有疏漏或错误之处请各位一定要指出来哦,勿以善小而不为,呵呵。
VB.NET串口助手,亲测可用,简单实用。 网上大大部分都实用AXcom控件而非serial port,各种函数都不一样。 这是一个最新的用serial port 来写的,包括委托的线程的关系。 这是我3年前的一个例子,最近翻出来回忆一下。 串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口,现在配电脑好像只有一个。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信在工控领域用途很广。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值