❶ 急急急,请教大师一个关于VB串口控件的问题
你说到的现象是正确的!
串口在传送数据时不是我们想象(或理论设计)上的标准,所以就有缓存大小的设置了,
数据的禅橘接收由于受各种条件的干涉及影响,所以在收数据时不是那么的规律,虽然你设置了满足9个字节才发生OnComm事件,实际上当OnComm事件发生时,其接收的数据不一定非得是9个或9的倍数个字节,这时正常的!
在程序的设计上,需要做一下的处理:
1、MSComm1.RThreshold
=
1
仍然设贺汪团置为1
,当陵租有数据接收时,便产生OnComm事件
2、在OnComm事件中建立接收字符的中间变量
reciveTmp
,将接收到的数据一次增加到该变量中,并判断该变量中的数据字节是否满足自己需要的9个字节数,把满足的字节取走并处理,把不满足的依次循环滚动,这样才能有效的解决问题....
❷ VB采用SerialPort控件串口通信中,接受数据怎么实现
在Form_Load()内写入以下代码,进行串口初始轿镇化
MSComm1.CommPort =9 '读取com口号
If MSComm1.PortOpen = True Then '如果串口打开先关闭后再进行其他操作
MSComm1.PortOpen = False
End If
MSComm1.PortOpen = True '打开串口9
在退出按钮中写入
MSComm1.PortOpen = False '以在退出程序时关闭串口
双击串口控件图标,在其处理程序中写入以下代码
Dim BytReceived() As Byte
Dim strBuff As String
Dim i As Integer
Select Case MSComm1.CommEvent '事件发生
Case 2
MSComm1.InputLen = 0 '读入缓冲区全部内容
strBuff = MSComm1.Input '读入到缓冲区,strBuff 中存放的就槐郑是串口接收的数据
End Select
End Sub
满意请及时采纳,谢谢闭明粗
❸ 请问在VS2005中手动添加MSCOMM控件 后 出现的尾行不一致的提示 是什么意思
这个问题一般都是不同字符集颂冲的行尾表示方式不一样造成的,只要能编译通过就没有大的问题。
如果要执行标准化,记得保野携歼存一下,不然下次打开还是会要隐饥求标准化的。
❹ vs2005的SerialPort类和MSCOMM32.ocx控件哪个更好用
SerialPort这个还不错我用过。不过中文文档不太全,看英文有点费劲。建议使用。
❺ VC++2005串口编程的问题
如果是RS232 的话,VB我曾做过一个。
回路测试。
建两个多行文本框 text1 text2 一个按钮发送,
timer 时间控件
MScomm 串口控件。在添加控件中找到 Microsoft Comm Control 6.0或更高。
写发送代码氏正拍
Private Sub Command6_Click()
MSComm1.PortOpen = False
MSComm1.Output = Trim(Text2.Text)
End Sub
写timer代码,先设定timer1属性为6秒则将Interval设为6000
Private Sub Timer1_Timer()
Dim Instring As String
On Error Resume Next
If MSComm1.InBufferCount = 0 Then GoTo 20
Instring = MSComm1.Input
text1.Text = text1.Text + vbCrLf + Instring + " " + Trim(Str(Date)) + " " + Trim(Str(Time))
text1.SelStart = Len(text3.Text)
20
End Sub
我这里设计需要,所以是6秒歼羡,并在最后输出接收日期和时间,且数据累积。目的是为清备了保存文本。并且保持光标在最后输出数据结果,当多行文本框满了后不用向后翻。
若用本机测试回路别望了短接串口输入、输出。
❻ vs2005中如何添加控件呀
请问楼主要添加什么控件
如果是自己编写的DLL,就如楼上说的
如果是在webform里面的用户控件的话 直接切到试图里面 在资源管理器里面拖过来就是
❼ VB智能设备串口serialport
先用可以打开的程序试下,是否确实被占用了。
如果没有占稿棚用,再来看程序,建立单步执行一下,看看是哪行出错了唤侍
不过这2段中的和敬吵open_serialport1 = True是一样的,感觉有点问题。
If SerialPort1.IsOpen = True Then
btn_openPort.Text = "关闭串口"
lst_SerialNumber.Enabled = False
lst_Baudrate.Enabled = False
open_serialport1 = True
End If
If SerialPort1.IsOpen = False Then
btn_openPort.Text = "打开串口"
lst_SerialNumber.Enabled = True
lst_Baudrate.Enabled = True
open_serialport1 = True
End If
❽ 求用VS2005实现串口通信的程序和说明,用C++
VS2005 以后 是 用 serialport 控件宴纳 而不是 用 MSCOMM控件
建议 去网络闹首文库 里晌弯没搜搜 类似的 文档