VB 串口接收不到数据(急!)

ljs217 2007-06-19 11:21:38
VB与单片机的通信
运行结果Text1 , Text2 接收到“A”,Text3 却没有收到,即使多发几个也一样没收到,请各位高手帮帮小弟,感激不尽!!(程序如下)
单片机发送用MATLAB仿真过,没有问题

Dim str_buff As String

Private Sub rungo_click()
If MSC.PortOpen = False Then
MSC.InputMode = comInputModeText '文本接收
MSC.Settings = "4800,n,8,1" '设置波特率4800,无校验,8位数据位,1位停止位
MSC.InputLen = 0 '一次读出输入缓冲区中的所有数据
MSC.InBufferCount = 0 '清空接收缓冲区
MSC.OutBufferCount = 0 '清空发送缓冲区
MSC.OutBufferSize = 512 '发送缓冲区字节
MSC.RThreshold = 0 '不触发OnComm()事件
MSC.PortOpen = True '打开COM1
End If
Call runstart
End Sub

Private Sub runstart()
MSC.Output = addr '一段 BYTE 数据(2字节)
Call comEvent
Text1= str_buff '显示接收到的“A”
MSC.Output = hexdata '一段 BYTE 数据(512字节)
Call comEvent
Text2 = str_buff '显示接收到的“A”
MSC.Output = hexdata2 '一段 BYTE 数据( < 512字节)
Call comEvent
Text3 = str_buff '显示接收到的“A”
MSC.PortOpen = False '关闭com1
End Sub

Private Sub comEvent()
Do
'MSC.InputLen = 1 '接收一个字节
DoEvents
str_buff = MSC.Input
Loop Until str_buff = "A" '当接收到"A"继续发送下一段
MSC.InBufferCount = 0 '清空接收缓冲区
MSC.OutBufferCount = 0 '清空发送缓冲区
End Sub
...全文
1046 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
adaiya110 2012-10-08
  • 打赏
  • 举报
回复
其实找个串行口助手测试一下就可以了,注意最好采用十六进制
meijun_80 2008-09-28
  • 打赏
  • 举报
回复
是怎么解决地呀?
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
lz要干嘛?
ljs217 2007-07-02
  • 打赏
  • 举报
回复
谢谢各位!!
自已解决了
rocllllll 2007-06-30
  • 打赏
  • 举报
回复
单片机和控件的波特率要一样
LenceTang 2007-06-28
  • 打赏
  • 举报
回复
很有可能是COM口通讯线有问题
zdingyun 2007-06-20
  • 打赏
  • 举报
回复

MSC.Settings = "9600,n,8,1" '设置波特率4800,无校验,8位数据位,1位停止位
改为:
MSC.Settings = "4800,n,8,1" '设置波特率4800,无校验,8位数据位,1位停止位
zdingyun 2007-06-20
  • 打赏
  • 举报
回复
Option Explicit
Dim str_buff As String
Dim addr(1) As Byte
Dim hexdata(511) As Byte
Dim hexdata2(511) As Byte
Dim i As Integer
Private Sub Form_Load()
addr(0) = &HF0
addr(1) = &H0
For i = 0 To 511
hexdata(i) = &HF0
hexdata2(i) = &HF0
Next
End Sub

Private Sub rungo_click()
If MSC.PortOpen = False Then
MSC.InputMode = comInputModeText '文本接收
MSC.Settings = "9600,n,8,1" '设置波特率4800,无校验,8位数据位,1位停止位
MSC.InputLen = 0 '一次读出输入缓冲区中的所有数据
MSC.InBufferCount = 0 '清空接收缓冲区
MSC.OutBufferCount = 0 '清空发送缓冲区
MSC.OutBufferSize = 512 '发送缓冲区字节
MSC.RThreshold = 0 '不触发OnComm()事件
MSC.PortOpen = True '打开COM1
End If
Call runstart
End Sub

Private Sub runstart()
MSC.Output = addr '一段 BYTE 数据(2字节)
Call comEvent
Text1 = str_buff '显示接收到的“A”
MSC.Output = hexdata '一段 BYTE 数据(512字节)
Call comEvent
Text2 = str_buff '显示接收到的“A”
MSC.Output = hexdata2 '一段 BYTE 数据( < 512字节)
Call comEvent
Text3 = str_buff '显示接收到的“A”
MSC.PortOpen = False '关闭com1
End Sub

Private Sub comEvent()
Do
MSC.InputLen = 1 '接收一个字节
str_buff = MSC.Input
DoEvents
Loop Until str_buff = "A" '当接收到"A"继续发送下一段
MSC.InBufferCount = 0 '清空接收缓冲区
MSC.OutBufferCount = 0 '清空发送缓冲区
End Sub
zdingyun 2007-06-19
  • 打赏
  • 举报
回复
Option Explicit
Dim str_buff As String
Dim addr
Dim hexdata
Dim hexdata2

Private Sub Form_Load()
addr = "01"
hexdata = "0123456789"
hexdata2 = "9876543210"
End Sub

Private Sub rungo_click()
If MSC.PortOpen = False Then
MSC.InputMode = comInputModeText '文本接收
MSC.Settings = "9600,n,8,1" '设置波特率4800,无校验,8位数据位,1位停止位
MSC.InputLen = 0 '一次读出输入缓冲区中的所有数据
MSC.InBufferCount = 0 '清空接收缓冲区
MSC.OutBufferCount = 0 '清空发送缓冲区
MSC.OutBufferSize = 512 '发送缓冲区字节
MSC.RThreshold = 0 '不触发OnComm()事件
MSC.PortOpen = True '打开COM1
End If
Call runstart
End Sub

Private Sub runstart()
MSC.Output = addr '一段 BYTE 数据(2字节)
Call comEvent
Text1 = str_buff '显示接收到的“A”
MSC.Output = hexdata '一段 BYTE 数据(512字节)
Call comEvent
Text2 = str_buff '显示接收到的“A”
MSC.Output = hexdata2 '一段 BYTE 数据( < 512字节)
Call comEvent
Text3 = str_buff '显示接收到的“A”
'MSC.PortOpen = False '关闭com1
End Sub

Private Sub comEvent()
Do
MSC.InputLen = 1 '接收一个字节
str_buff = MSC.Input
DoEvents
Loop Until str_buff = "A" '当接收到"A"继续发送下一段
MSC.InBufferCount = 0 '清空接收缓冲区
MSC.OutBufferCount = 0 '清空发送缓冲区
End Sub
ljs217 2007-06-19
  • 打赏
  • 举报
回复
谢谢了!
不过不行。
我原来的数据差不多是这样的
addr(0)=&hf0
addr(1)=&h0
hexdata(0)=&hf0 …… hexdata(511)=&hf0
hexdata(0)=&hf0 …… hexdata(n<512)=&hf0

1,065

社区成员

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

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