首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
VB
API
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
VB6.0下如何用API实现串口通讯??
[无满意答案结贴,结贴人:ZW_LM]
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-11 20:59:14
楼主
我能打开串口,但不能实现通信,,不知爪子了,请高人指点。
问题点数:
20
回复次数:
22
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cangwu_lee
橙子
等级:
发表于:
2007-12-12 07:14:13
1
楼 得分:
0
先確認硬件是完全正常的,可以用調試工具。
關鍵的串口設定是否正確,速率、核驗、緩衝、等等
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-12 12:31:48
2
楼 得分:
0
串口硬件肯定没有问题,波特率和校验方式也应该没有问题。就是写串口时不成功
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-12 18:24:53
3
楼 得分:
0
自己顶上去
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-13 22:45:09
4
楼 得分:
0
救命啊!!!诚心求救
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhh0086
晨曦
等级:
发表于:
2007-12-13 22:47:59
5
楼 得分:
0
我最近也要写一个232和vb的通信程序,学习中。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
awperpvip
★★★★★
等级:
发表于:
2007-12-14 11:41:15
6
楼 得分:
0
API用这几个
CreateFile
ReadFile
WriteFile
还可以用用
SetCommTimeouts
GetCommState
SetCommState
SetupComm
PurgeComm
SetCommMask
WaitCommEvent
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-16 17:30:57
7
楼 得分:
0
我用的也是这几个API函数,在百度了很多关于他们用法的代码,但就是不能成功,不知道是不是我的函数声明的问题。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kuhe
等级:
发表于:
2007-12-16 19:28:43
8
楼 得分:
0
上次看你发帖问VB6如何实现多线程,我就想你是不是要写串口或是工控一类的软件。这个帖子果然证实啦偶的猜测。这些事情4年前我全部经历过。我也试过用API进行串口通信或写多线程,但经过近一年的摸索后,我终于明白,在VB中,串口就用MSCOMM,多线程就用ActiveX EXE。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-17 12:36:35
9
楼 得分:
0
哦?那你有没有线程的代码?能否给我借鉴一下?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kuhe
等级:
发表于:
2007-12-17 20:22:26
10
楼 得分:
0
VB6中,点“工程->引用->浏览”,选文件类型为ActiveX控件(*.OCX)。找到MSCOMM32.OCX,选中后点“打开”。
Dim MyComm As New MSComm
MyComm.CommPort = 1
MyComm.Settings = "9600,N,8,1"
MyComm.PortOpen = True
MyComm.Output = "12345678"
MyComm.PortOpen = False
上述的方法是为了让你可以在ActiveX EXE中使用MSCOMM控件。在一般的程序中直接把MSCOMM控件放到窗体上就OK了。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-17 22:42:03
11
楼 得分:
0
kuhe兄,我还是不太明白,能不能说的更明白一点。
是不是我先新建一个ActiveX EXE工程,然后在里面添加上面的代码?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kuhe
等级:
发表于:
2007-12-18 21:24:33
12
楼 得分:
0
你在窗体上放个Command,在里放上这些代码试试吧。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kuhe
等级:
发表于:
2007-12-18 21:26:33
13
楼 得分:
0
不行的话把你的手机通过站内短消息发给我。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-19 12:40:21
14
楼 得分:
0
我试试看,,
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
tssing
等级:
发表于:
2007-12-20 17:06:10
15
楼 得分:
0
用控件吧,,
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-20 17:13:07
16
楼 得分:
0
就是不想用控件才讨论用API的,,,
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kuhe
等级:
发表于:
2007-12-20 21:22:52
17
楼 得分:
0
估计你想写个串口通信程序,后来觉得应该把串口通讯这类干等的事放在辅助线程里。用CreateThread一试,辅助线程里不能用VB自带的函数和控件等资源,然后就想法子用Windows API实现串口通信。
这些弯路偶以前全走过,你重复走走也好,会增加你的挫折经验。当然如果你能好好学学《VB高级编程》,也许能从我当时失败的地方闯出一条新路,偶当时可不知道有这样一本牛书。
如果你编的程序只涉及串口通信,建议你尽快转到VB2005.当然如果还涉及什么数据采集卡之类的工控编程,可能还得用VB6这些非.net开发工具。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-20 22:23:08
18
楼 得分:
0
kuhe兄一言中的,我正是做工控的,正是想用辅助线程来实现通信功能,也正是因为VB6.0多线程是控件不稳定的,想用纯API来实现串口通讯。唉。。。。看来只能用Delphi7.0了。。。。代码都得重写,,,太痛苦了!!!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-20 22:23:51
19
楼 得分:
0
VB6.0不支持多线程,看来是它的致命缺点啊!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jwh2004
兔子
等级:
发表于:
2007-12-21 13:50:53
20
楼 得分:
0
楼主为何非要用api来实现串口呀?mscomm控件内部本身就已经创建了线程了(用windows任务管理器就可看到有和无mscomm控件的exe程序其线程数相差1),就算你用api或activex就能做的比mscomm好?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kuhe
等级:
发表于:
2007-12-23 18:57:48
21
楼 得分:
0
用Delphi也好。
偶以前写的工控软件,包括用串口和下位机通信,采集并控制百来个点的温度,用的就是ActiveX exe。当时工控机也就P3级,程序运行时整个系统资源的消耗并不大。如果现在再重做,估计可以把CPU的使用率下降到5%以下。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ZW_LM
巴蒂斯图塔
等级:
发表于:
2007-12-24 12:43:44
22
楼 得分:
0
关键是我的设备上有干扰源,有可能导致CPU占用率很高。
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
abc推荐给好友