求助!在线等,请各位大侠赐教

firstsinger 2004-08-28 11:04:08
发送命令:403031524431370D(为ASCII码)
应该回送:@01RD010000640500000001640000000000000200的ASCII码形式
代码:
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.PortOpen = True
MSComm1.Settings = "9600,n,8,1"
MSComm1.InBufferCount = 0
End Sub

Private Sub Timer1_Timer()
MSComm1.Output = "403031524431370D "
Text1.Text = MSComm1.Input
End Sub
将字符串分离传输也试过了,就是一个字符都收不到,用调试软件测试能发能收,所以硬件部分没有问题。
请各位高手赐教!
...全文
91 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jordi2014 2004-08-28
  • 打赏
  • 举报
回复

Private Sub MSComm_OnComm ()
Select Case MSComm1.CommEvent
' Handle each event or error by placing
' code below each case statement

' 错误
Case comEventBreak ' 收到 Break。
Case comEventCDTO ' CD (RLSD) 超时。
Case comEventCTSTO ' CTS Timeout。
Case comEventDSRTO ' DSR Timeout。
Case comEventFrame ' Framing Error
Case comEventOverrun '数据丢失。
Case comEventRxOver'接收缓冲区溢出。
Case comEventRxParity' Parity 错误。
Case comEventTxFull '传输缓冲区已满。
Case comEventDCB '获取 DCB] 时意外错误

' 事件
Case comEvCD ' CD 线状态变化。
Case comEvCTS ' CTS 线状态变化。
Case comEvDSR ' DSR 线状态变化。
Case comEvRing ' Ring Indicator 变化。
Case comEvReceive ' 收到 RThreshold # of chars.
'收到字符
if commevent=comEvReceive then
text1.text=mscomm1.input
endif

Case comEvSend ' 传输缓冲区有 Sthreshold 个字符 '
'
Case comEvEof ' 输入数据流中发现 EOF 字符
'
End Select
jordi2014 2004-08-28
  • 打赏
  • 举报
回复
在mscomm控件的oncomm事件中接收。
davysnet 2004-08-28
  • 打赏
  • 举报
回复
我也遇到过一次同样的问题,好奇怪,总是收不到数据,表面上也看不出哪个参数设置的不对,但就是收不到。但是用串口调试精灵能受到。
后来我在接受之前加了1秒的时间延迟,结果每次都能接到了。
iiboy 2004-08-28
  • 打赏
  • 举报
回复
UP

学习中.....
firstsinger 2004-08-28
  • 打赏
  • 举报
回复
没什么用,我早用了

7,785

社区成员

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

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