首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • VB6.0下如何用API实现串口通讯?? [无满意答案结贴,结贴人:ZW_LM]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-11 20:59:14 楼主
    我能打开串口,但不能实现通信,,不知爪子了,请高人指点。
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-12 07:14:131楼 得分:0
    先確認硬件是完全正常的,可以用調試工具。
    關鍵的串口設定是否正確,速率、核驗、緩衝、等等
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-12 12:31:482楼 得分:0
    串口硬件肯定没有问题,波特率和校验方式也应该没有问题。就是写串口时不成功
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-12 18:24:533楼 得分:0
    自己顶上去
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-13 22:45:094楼 得分:0
    救命啊!!!诚心求救
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-13 22:47:595楼 得分:0
    我最近也要写一个232和vb的通信程序,学习中。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-14 11:41:156楼 得分:0
    API用这几个
    CreateFile
    ReadFile
    WriteFile
    还可以用用
    SetCommTimeouts
    GetCommState
    SetCommState
    SetupComm
    PurgeComm
    SetCommMask
    WaitCommEvent
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-16 17:30:577楼 得分:0
    我用的也是这几个API函数,在百度了很多关于他们用法的代码,但就是不能成功,不知道是不是我的函数声明的问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-16 19:28:438楼 得分:0
    上次看你发帖问VB6如何实现多线程,我就想你是不是要写串口或是工控一类的软件。这个帖子果然证实啦偶的猜测。这些事情4年前我全部经历过。我也试过用API进行串口通信或写多线程,但经过近一年的摸索后,我终于明白,在VB中,串口就用MSCOMM,多线程就用ActiveX EXE。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-17 12:36:359楼 得分:0
    哦?那你有没有线程的代码?能否给我借鉴一下?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-17 20:22:2610楼 得分: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:0311楼 得分:0
    kuhe兄,我还是不太明白,能不能说的更明白一点。
    是不是我先新建一个ActiveX EXE工程,然后在里面添加上面的代码?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-18 21:24:3312楼 得分:0
    你在窗体上放个Command,在里放上这些代码试试吧。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-18 21:26:3313楼 得分:0
    不行的话把你的手机通过站内短消息发给我。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-19 12:40:2114楼 得分:0
    我试试看,,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-20 17:06:1015楼 得分:0
    用控件吧,,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-20 17:13:0716楼 得分:0
    就是不想用控件才讨论用API的,,,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-20 21:22:5217楼 得分:0
    估计你想写个串口通信程序,后来觉得应该把串口通讯这类干等的事放在辅助线程里。用CreateThread一试,辅助线程里不能用VB自带的函数和控件等资源,然后就想法子用Windows API实现串口通信。
    这些弯路偶以前全走过,你重复走走也好,会增加你的挫折经验。当然如果你能好好学学《VB高级编程》,也许能从我当时失败的地方闯出一条新路,偶当时可不知道有这样一本牛书。
    如果你编的程序只涉及串口通信,建议你尽快转到VB2005.当然如果还涉及什么数据采集卡之类的工控编程,可能还得用VB6这些非.net开发工具。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-20 22:23:0818楼 得分:0
    kuhe兄一言中的,我正是做工控的,正是想用辅助线程来实现通信功能,也正是因为VB6.0多线程是控件不稳定的,想用纯API来实现串口通讯。唉。。。。看来只能用Delphi7.0了。。。。代码都得重写,,,太痛苦了!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-20 22:23:5119楼 得分:0
    VB6.0不支持多线程,看来是它的致命缺点啊!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-21 13:50:5320楼 得分:0
    楼主为何非要用api来实现串口呀?mscomm控件内部本身就已经创建了线程了(用windows任务管理器就可看到有和无mscomm控件的exe程序其线程数相差1),就算你用api或activex就能做的比mscomm好?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-23 18:57:4821楼 得分:0
    用Delphi也好。
    偶以前写的工控软件,包括用串口和下位机通信,采集并控制百来个点的温度,用的就是ActiveX exe。当时工控机也就P3级,程序运行时整个系统资源的消耗并不大。如果现在再重做,估计可以把CPU的使用率下降到5%以下。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZW_LM
    • 等级:
    发表于:2007-12-24 12:43:4422楼 得分:0
    关键是我的设备上有干扰源,有可能导致CPU占用率很高。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved