vb串口通信运行出现实时错误 424 , 程序哪错了,菜鸟团求助

菜鸟求助:关于一段串口通信代码的解释,请给予提示!百分相谢!
[问题点数:100分,结帖人qifanghcy]
菜鸟求助:关于一段串口通信代码的解释,请给予提示!百分相谢!
[问题点数:100分,结帖人qifanghcy]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。vb中提示实时错误‘424’要求对象,该如何改正
vb中提示实时错误‘424’要求对象,该如何改正
&Private Sub MDIForm_Load()<mand1.Enabled = FalseMDIForm1.Picture = LoadPicture("合成.jpg")End Sub运行时提示实时错误‘424’要求对象,该如何改正每次运行错误都提示是这句出错mand1.Enabled = False
没错呀,你确认一下你在控件存不存在或者名字写错了
<mand1.Enabled = False这一句没错。估计是MDIForm1.Picture = LoadPicture("合成.jpg")粗体部分需要完整的文件路径,比如C:\my documents\pictures\合成.jpg
其他回答 (1)
MDI窗体执行load时,form1并未装入,所以,其上的控件自然也未装入,所以出错的那句应放到form1的load 事件中
等待您来回答
编程领域专家用VB实现一个串口通信的上位机程序
明天就是四级考试了,还有考试周马上也要来了,可是复习依然是没有进展,我认为还是很有必要拿出一个晚上的时间来完成这个,如果现在不写过断时间可能就被我不知道忘到哪里去了,说起VB应该是一种很简单的编程语言,而我与VB的亲密接触应该发生在上学期的寒假的一个星期的时间,在那一个星期的时间我简单的了解了一下VB的语法规则和数据类型,可惜没有坚持下去做深入的学习,然后到学校后发现用不上就没去理他了,直到前段时间接到一个制作抢答器的任务,后面想给它写一个上位机程序,开始也向同学求助过,可能串口这个东西他们接触的少所以无果,没办法只能自己动手,可惜寒假学的那些VB都忘的差不多了,还好网上的教程很多,VB的串口实现程序也很多,如果没有这些我也是不可能完成的,废话不多说了,进入正题。
&在此之前我想对一些概念做出一些自己的理解是非常有必要的,以前我一直使用是C语言编程,那个应该是属于结构化编程,VB是一中面对对象的编程语言,首先我们要明确VB程序的执行是基于事件驱动的,什么是事件就好比一个按钮的单击,即发生一个事件,对应的这个按钮的单击事件的程序就得到执行,所以这就好比单片机的中断一样,单击一下就是产生了一个中断,对应的程序就是中断服务程序,这个中断服务程序就得到了响应,所以VB中是没有main函数的,明确了VB程序的执行过程,下面就来说说这个对象了,首先事件是发生在对象上的,好比上面的一个按钮就是一个对象,对象具有属性,如按钮的大小等,我们的程序就是由这些对象拼装起来的,而对象则是由类构造的。这些理解可能有会有错误的地方,但我认为在初步学习VB前或初步学习后能很好的理解事件,对象,类,等是非常有必要的,这样就算你以后可能忘记了VB的语法规则和基本数据类型之类的,但只要稍加复习即可马上上手。所以学习一个新的东西首先要对这个东西所涉及到的一些概念理解清楚才能很好的掌握它。
首先打开我们的VB6.0中文企业版,新建一个应用程序,单击工程-&部件,为我们的工程添加一个MSComm串口通信控件(一个电话机形状)如图:
这里我们就来实现一个简单的串口收发程序,我们设置要挨个按钮来把按钮的标签属性改为“打开串口”,再创建一个文本框用来显示我们收到的字符串,然后在添加我们的MSComm控件。如图:
&&&&&&&&在写程序之前我们还要来了解一下这个MSComm控件具有那些属性,如下:
Commport;设置或返回串口号。
SettingS:以字符串的形式设置或返回串口通信参数。
Portopen:设置或返回串口状态。
InputMode:设置或返回接收数据的类型。
Inputlen:设置或返回一次从接收缓冲区中读取字节数。
InBufferSize:设置或返回接收缓冲区的大小,缺省值为l 024字节。
InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。
Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。
OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。
OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。
Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。
然后我们双击窗体在窗体的启动事件中添加&如下初始化:
Private Sub Form_Load()
.CommPort =
.Settings = "9600,N,8,1"& '通信格式
.InputMode = comInputModeText '文本方式取回数据
.InBufferSize = 4096
.InputLen = 0&
'设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据
.InBufferCount = 0
.OutBufferCount = 0
.RThreshold = 1
以上程序初始化了端口1,下面双击我们的按钮添加按钮的单击事件过程程序如下:
Private Sub
Command1_Click()
If .PortOpen = True Then
.PortOpen = False
单击它则打开端口,下面就是关键的了,我们怎么从端口读起数据呢,首先双击我们的“电话机“它具有OnComm事件,只要发生通信错误或事件就会产生OnComm事件。我们可以通过MSComm控件的CommEvent属性返回的值来判断发生的是什么事件,所以我们可以通过在OnComm事件发生时用类似C语言中的switch语句来比较匹配CommEvent属性返回的值并在表示收到数据的值后面添加我们的代码,其中如果返回comEvReceive则表示收到数据,其他没有列出来。所以程序如下:
Private Sub Comm1_OnComm()
&Select mEvent&&&&&&&
'类似c语言中的switch语句
&Case&s=comm1.Input&&&&&&&&&&&&&&&&&&&&&&&&&&'S为我们定义的一个字符变量
&Text1.Text=Text1.Text
&&s&&&&&&&&&&&&&&&
& '在文本框中显示接收到的字符,可改为其他操作
Else&&&&&&&&&&&&&&&&&&&&&&&
select&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
'结束select语句
到此我们的接收程序就完成了,发送只需要忘MSComm控件的Output属性写数据就可以了,即MSComm1.Output
= "s"表示发送字符s,这样一个串口通信的核心问题就解决了,如果还要其他功能可自行添加。
下面这个为我上次写的抢答器程序界面:
从开始写到写完花了大概一个下午加一个晚上的时间(包括查阅资料),总体来说这个程序写的很烂,幸运的是它如我所愿比较正常的运行了,运行效果如下:
要讲明白一件事情还真不容易,到这里只要你稍加看下VB,相信你也可以做出一个很完美的串口通信程序了,上面可能会存在错误,所以有问题建议查阅资料或百度。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。关于VB 实时错误424_百度知道
关于VB 实时错误424
本人在MDI窗体中的picturebox 控件中加入了
一个label1 和 定时器 time1控件代码如下
运行时老是报错 实时错误424
lable1.Left = x
求高手解决~ Private Sub Timer1_Timer()x = x + 50If x & Picture1.Width Then x = -1 * Label1.Width End If lable1.Left = xEnd Sub
我有更好的答案
按默认排序
lable1.Left = x 应该是label1.left你把名字写错了。顺便说一下,实时错误424,要求对象
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁VB串口通信以及实时曲线的问题
[问题点数:50分,结帖人CSDN]
VB串口通信以及实时曲线的问题
[问题点数:50分,结帖人CSDN]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 我的世界菜鸟 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信