VB6.0下如何用API实现串口通讯??

ZW_LM 2007-12-11 08:59:14
我能打开串口,但不能实现通信,,不知爪子了,请高人指点。
...全文
1145 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
wd201001010 2010-10-06
  • 打赏
  • 举报
回复
学习了 呵呵
ZW_LM 2007-12-24
  • 打赏
  • 举报
回复
关键是我的设备上有干扰源,有可能导致CPU占用率很高。
kuhe 2007-12-23
  • 打赏
  • 举报
回复
用Delphi也好。
偶以前写的工控软件,包括用串口和下位机通信,采集并控制百来个点的温度,用的就是ActiveX exe。当时工控机也就P3级,程序运行时整个系统资源的消耗并不大。如果现在再重做,估计可以把CPU的使用率下降到5%以下。
jwh2004 2007-12-21
  • 打赏
  • 举报
回复
楼主为何非要用api来实现串口呀?mscomm控件内部本身就已经创建了线程了(用windows任务管理器就可看到有和无mscomm控件的exe程序其线程数相差1),就算你用api或activex就能做的比mscomm好?
ZW_LM 2007-12-20
  • 打赏
  • 举报
回复
VB6.0不支持多线程,看来是它的致命缺点啊!
ZW_LM 2007-12-20
  • 打赏
  • 举报
回复
kuhe兄一言中的,我正是做工控的,正是想用辅助线程来实现通信功能,也正是因为VB6.0多线程是控件不稳定的,想用纯API来实现串口通讯。唉。。。。看来只能用Delphi7.0了。。。。代码都得重写,,,太痛苦了!!!
kuhe 2007-12-20
  • 打赏
  • 举报
回复
估计你想写个串口通信程序,后来觉得应该把串口通讯这类干等的事放在辅助线程里。用CreateThread一试,辅助线程里不能用VB自带的函数和控件等资源,然后就想法子用Windows API实现串口通信。
这些弯路偶以前全走过,你重复走走也好,会增加你的挫折经验。当然如果你能好好学学《VB高级编程》,也许能从我当时失败的地方闯出一条新路,偶当时可不知道有这样一本牛书。
如果你编的程序只涉及串口通信,建议你尽快转到VB2005.当然如果还涉及什么数据采集卡之类的工控编程,可能还得用VB6这些非.net开发工具。
ZW_LM 2007-12-20
  • 打赏
  • 举报
回复
就是不想用控件才讨论用API的,,,
tssing 2007-12-20
  • 打赏
  • 举报
回复
用控件吧,,
ZW_LM 2007-12-19
  • 打赏
  • 举报
回复
我试试看,,
kuhe 2007-12-18
  • 打赏
  • 举报
回复
不行的话把你的手机通过站内短消息发给我。
kuhe 2007-12-18
  • 打赏
  • 举报
回复
你在窗体上放个Command,在
里放上这些代码试试吧。
ZW_LM 2007-12-17
  • 打赏
  • 举报
回复
哦?那你有没有线程的代码?能否给我借鉴一下?
ZW_LM 2007-12-17
  • 打赏
  • 举报
回复
kuhe兄,我还是不太明白,能不能说的更明白一点。
是不是我先新建一个ActiveX EXE工程,然后在里面添加上面的代码?
kuhe 2007-12-17
  • 打赏
  • 举报
回复
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了。
kuhe 2007-12-16
  • 打赏
  • 举报
回复
上次看你发帖问VB6如何实现多线程,我就想你是不是要写串口或是工控一类的软件。这个帖子果然证实啦偶的猜测。这些事情4年前我全部经历过。我也试过用API进行串口通信或写多线程,但经过近一年的摸索后,我终于明白,在VB中,串口就用MSCOMM,多线程就用ActiveX EXE。
ZW_LM 2007-12-16
  • 打赏
  • 举报
回复
我用的也是这几个API函数,在百度了很多关于他们用法的代码,但就是不能成功,不知道是不是我的函数声明的问题。
awperpvip 2007-12-14
  • 打赏
  • 举报
回复
API用这几个
CreateFile
ReadFile
WriteFile
还可以用用
SetCommTimeouts
GetCommState
SetCommState
SetupComm
PurgeComm
SetCommMask
WaitCommEvent
zhh0086 2007-12-13
  • 打赏
  • 举报
回复
我最近也要写一个232和vb的通信程序,学习中。
ZW_LM 2007-12-13
  • 打赏
  • 举报
回复
救命啊!!!诚心求救
加载更多回复(3)

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧