VB与单片机通讯问题: VB发数据到单片机成功但是单片机发了3组数据VB收不到,请大侠帮帮忙!

PrivateSubForm_Load()MSComm1.OutBufferCount=0MSComm1.OutBufferSize=100MSComm1.InBuffe... Private Sub Form_Load()
MSComm1.OutBufferCount = 0
MSComm1.OutBufferSize = 100
MSComm1.InBufferSize = 100 '接受缓存大小
MSComm1.InBufferCount = 0 '将缓存接受到的字符统计
MSComm1.InputMode = comInputModeText '
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 20 '
MSComm1.PortOpen = True ' 打开串口
End Sub

Private Sub Command1_Click() '此软件VB发送数据到单片机已调试成功
Dim c As Integer
Dim d As String
Dim s As String
Dim s_data(15) As Byte
Dim zm As Byte
Dim fig As Boolean
'............
Form1.MSComm1.OutBufferCount = 0
Form1.MSComm1.Output = s_data '发送数据到单片机已成功
DelayLoop (1000) '延时1S读取数据到VB
d = 0
zm = 0
Text1.Text = ""
s = Form1.MSComm1.Input ‘监控中S读不出任何数据
If Len(s) > 0 Then ’长度也为0
For c = 0 To Len(s) - 1 'c=integer
d = Mid$(s, (c + 1), 1) 'd=string
zm = Asc(d)
Next c
End If
展开
 我来答
dfk1979
2011-08-15 · TA获得超过2287个赞
知道大有可为答主
回答量:2197
采纳率:80%
帮助的人:1277万
展开全部
MSComm1.InputMode = comInputModeText
你接收方式是文本方式 有问题 单片机通讯一般是byte值 你的计算机发送就是这个 改成如下2进制的就能得到数据了
MSComm1.InputMode = comInputModeBinary '设置接收数据模式为二进制形式

收到的数据想转成字符串就这样写
S = MSComm1.InBufferCount '接收多少
For I = 0 To S
A = A & Chr(MSComm1.Input(0))
Next I

可以参考我如下的设置 MSComm名称:MSCA

With MSCA
If .PortOpen = True Then .PortOpen = False
.CommPort = TeA.Text '使用COM通信口
.Settings = "9600,N,8,1" '设置通信口参数 ' 9600 波特,无奇偶校验,8 位数据,一个停止位。
.InBufferSize = 1024 '设置MSComm1接收缓冲区为1024字节
.OutBufferSize = 512 '设置MSComm1发送缓冲区为512字节
.InputMode = comInputModeBinary '设置接收数据模式为二进制形式
.InputLen = 1 '设置Input 一次从接收缓冲读取字节数,缺省值0,使用Input将使MSComm控件读取接收缓冲区中全部的内容
.SThreshold = 1 '设置并返回传输缓冲区中允许的最小字符数,若设为0(缺省值),数据传输不产生OnComm事件。若设置1,当传输缓冲区完全空时产生OnComm事件
.RThreshold = 1 '设置并返回的要接收的字符数,在该数产生OnComm事件
.InBufferCount = 0 '清除接收缓冲区
.OutBufferCount = 0 '清除发送缓冲区
.RThreshold = 1 '设置接收一个字节产生OnComm事件
.EOFEnable = True '只有先设其为真,comEvEOF才能触发oncomm事件
If .PortOpen = False Then .PortOpen = True '判断通信口是否打开
'If Err Then MsgBox "通信端口无效... ", vbCritical, " 警 告" '错误处理
End With
上海实邦电子科技
2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设... 点击进入详情页
本回答由上海实邦电子科技提供
fywmte
2011-08-14 · 超过16用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:37.4万
展开全部
我用c语言
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huaqing320
2011-08-14 · TA获得超过266个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:248万
展开全部
MCUWHY论坛,多上去学习学习。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绷带达人
2011-08-15
知道答主
回答量:31
采纳率:0%
帮助的人:17.3万
展开全部
你的程序,应该用查询或者中来来做,效果好很多,不会丢数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式