mscomm问题,为什么接收不到comEvReceive事件,只能接受comEvCTS,大家帮忙,顶有分!

bianchengxiaozi 2005-08-26 06:41:38
我要使用COM口的条码扫描枪,读数据到,我是用Windows的超级终端可以读到数据,但是用我的程序就不行,是什么原因呀.下面是我得代码
Option Explicit

Private Sub Form_Load()
MSComm1.CommPort = 1 '设置串口号
MSComm1.Settings = "9600,n,8,1" '波特率9600bit/s,无校验,8位数据,1位停止位
MSComm1.InputLen = 0 '读取接收缓冲区的所有字符
MSComm1.PortOpen = True '打开串口
MSComm1.SThreshold = 0 '不触发发送事件
MSComm1.RThreshold = 1 '每一个字符到接收缓冲区都触发接收事件
MSComm1.OutBufferCount = 0 '清除发送缓冲区数据
MSComm1.InBufferCount = 0 '清除接收缓冲区数据
MSComm1.InputMode = comInputModeText
If Not MSComm1.PortOpen Then
MSComm1.PortOpen = True
End If
End Sub

Private Sub MSComm1_OnComm()
Dim strData As String

Select Case MSComm1.CommEvent
Case comEvReceive
MsgBox "1"

Case comEvCTS
MsgBox "2"
End Select
End Sub

请高手指教
...全文
778 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zou19820704 2005-10-10
  • 打赏
  • 举报
回复
帮你顶呀!自己也学习
bianchengxiaozi 2005-09-05
  • 打赏
  • 举报
回复
问题解决了给分,谢谢大家.
byeshuang 2005-09-03
  • 打赏
  • 举报
回复
装msdn了吗?下面有mscom的例子。自己看看吧,不难
bianchengxiaozi 2005-08-31
  • 打赏
  • 举报
回复
byeshuang(努力不做菜鸟) 还在吗。
bianchengxiaozi 2005-08-31
  • 打赏
  • 举报
回复
能不能给我一个最简单的读串口例子,首先发送给串口,然后再接收,多谢了。
byeshuang 2005-08-31
  • 打赏
  • 举报
回复
写错了MSComm1.Handshaking =0 or 1 or 2 or 3

Handshaking 属性


设置并返回硬件握手协议。

语法

object.Handshaking [ = value ]

Handshaking 属性的语法包括下列部分:

部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
value 整型表达式,说明握手约定,如“设置值”中所描述。


设置值

value 设置值是:

设置值 值 描述
comNone 0 (缺省)没有握手。
comXOnXOff 1 (XON/XOFF) 握手。
comRTS 2 RTS/CTS (Request To Send/Clear To Send) 握手。
comRTSXOnXOff 3 Request To Send 和 XON/XOFF 握手皆可。


说明

Handshaking 是指内部通讯协议,通过该协议,数据从硬件端口传输到接收缓冲区。当一个数据字符到达串行端口,通讯设备就把它移到接收缓冲区以使程序可以读它。如果没有接受缓冲区,程序需要直接从硬件读取每一个字符,这很可能会造成数据丢失,因为字符到达的速度可以非常快。

握手协议保证在缓冲区过载时数据不会丢失,缓冲区过载为数据到达端口太快而使通讯设备来不及将它移到接收缓冲区。

数据类型

Integer
byeshuang 2005-08-31
  • 打赏
  • 举报
回复
open之前加上MSComm1.Handshake =0 or 1 or 2 or 3
属性好像是这样吧
bianchengxiaozi 2005-08-30
  • 打赏
  • 举报
回复
我怎样试一下每个Handshake 常数,能说得清楚点吗,谢谢了。
byeshuang 2005-08-30
  • 打赏
  • 举报
回复
Handshake 常数

常数 值 描述
comNone 0 无握手。
comXonXoff 1 XOn/Xoff 握手。
comRTS 2 Request-to-send/clear-to-send 握手。
comRTSXOnXOff 3 Request-to-send 和 clear-to-send 握手皆可。


OnComm 常数

常数 值 描述
comEvSend 1 发送事件。
comEvReceive 2 接收事件。
comEvCTS 3 clear-to-send 线变化。

那就应该是硬件握手的问题了,看看上面
都试一下每个Handshake 常数
domhuang 2005-08-30
  • 打赏
  • 举报
回复
Private Sub MSComm1_OnComm()
Dim strData As String

Select Case MSComm1.CommEvent
Case comEvReceive
MsgBox "1"

'Case comEvCTS
'MsgBox "2"
End Select
End Sub


'Case comEvCTS
'MsgBox "2"
把这两句删掉看能能不能接收 可能是一些硬件的握手问题

bianchengxiaozi 2005-08-30
  • 打赏
  • 举报
回复
老大,还是不行呀.MSComm1.CommEvent每次都是comEvCTS
bianchengxiaozi 2005-08-29
  • 打赏
  • 举报
回复
这些都应该是没有问题的,因为我在windows的超级终端是可以读到数据的.
of123 2005-08-29
  • 打赏
  • 举报
回复
1 阅读器是否连接到 COM1
2 是否用阅读器进行了扫描
3 阅读器通讯线有无问题
4 串口是否正常
bianchengxiaozi 2005-08-29
  • 打赏
  • 举报
回复
我的MSComm1.CommEvent都是=comEvCTS,而且用MSComm1.input也没有东西,应该是没有条码返回吧.
Winters_lee 2005-08-29
  • 打赏
  • 举报
回复
从你的代码倒是看不出有什么不对,你在CommEvent中接收一下串口数据看看有没有条码返回?
bianchengxiaozi 2005-08-29
  • 打赏
  • 举报
回复
高手帮看看呀。
byeshuang 2005-08-29
  • 打赏
  • 举报
回复
Private Sub Form_Load()
MSComm1.CommPort = 1 '设置串口号
MSComm1.Settings = "9600,n,8,1" '波特率9600bit/s,无校验,8位数据,1位停止位
MSComm1.InputLen = 0 '读取接收缓冲区的所有字符
MSComm1.PortOpen = True '打开串口 ======>>>>>>现在打开后面的设置就没用了,放到最后呀
MSComm1.SThreshold = 0 '不触发发送事件
MSComm1.RThreshold = 1 '每一个字符到接收缓冲区都触发接收事件 ===>>>主要是这个呀
MSComm1.OutBufferCount = 0 '清除发送缓冲区数据
MSComm1.InBufferCount = 0 '清除接收缓冲区数据
MSComm1.InputMode = comInputModeText
If Not MSComm1.PortOpen Then
MSComm1.PortOpen = True
End If
End Sub
bianchengxiaozi 2005-08-29
  • 打赏
  • 举报
回复
水来帮帮小弟呀.
内容概要:本文围绕间歇性光伏出力条件下48V直流母线电压的稳定控制与储能系统双向充放电的闭环调控体系展开深入研究,系统探讨了光伏阵列非线性输出特性与锂离子电池储能系统在离网直流微网中的能量均衡建模方法及层控制策略。通过Simulink平台构建完整的光伏储能直流系统仿真模型,涵盖PV阵列、Boost DC-DC变换器、负载、双向DC-DC变换器及电池系统等关键组件,实现了最大功率点跟踪(MPPT)与储能系统的协同控制,有效应对光照波动引起的功率供需失衡问题。研究采用双PI闭环控制、模型预测控制(MPC)等多种先进控制算法,显著提升了系统的动态响应速度与直流母线电压稳定性,并实现了储能系统在削峰填谷中的优化运行,对于增强离网微网的供电可靠性与能源利用效率具有重要理论价值和工程意义。; 适合人群:具备电力电子、新能源系统或自动控制等相关领域基础知识的研究生、科研人员,以及从事微电网、光伏储能系统开发与设计的工程技术人员。; 使用场景及目标:① 构建适用于离网场景的光伏储能系统Simulink仿真模型;② 实现间歇性光照条件下48V直流母线电压的精确稳定控制与储能系统的双向能量管理;③ 研究MPPT控制与储能充放电策略之间的协同机制,提升系统在复杂工况下的运行稳定性与鲁棒性;④ 为微电网能量管理系统的设计、优化与性能验证提供可靠的理论依据和技术支撑。; 阅读建议:建议结合文中所述的Simulink仿真模型与控制算法,亲自动手实践建模与仿真全过程,重点关注MPPT控制策略的实现、双向DC-DC变换器的设计以及电压外环与电流内环构成的双闭环控制结构的参数整定,并通过设置不同的光照强度变化曲线和负载投切工况,全面测试和评估系统的动态响应能力与控制性能。

7,788

社区成员

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

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