关于PC机与单片机多级通讯问题

wuqiuzi 2000-05-14 09:06:00
加精
我在用VB中的MSCOMM控件编写PC机程序时,对接受发送缓冲区的操作.例如向单片机发送二进制数据怎样发送.INPUT属性COMINPUTTEXT与COMINPUTBINARY的区别.
email:SUN9611@263.NET
...全文
172 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Janven 2000-05-19
  • 打赏
  • 举报
回复
Dim bytSend() as Byte

Public Sub ComSend()
If Not frmComm.MSComm.PortOpen Then
MsgBox "通信口错误,请设置通信口!", vbExclamation
Exit Sub
End If
frmComm.MSComm.Output = bytSend
End Sub

发送时,先对bytSend()赋值,然后调用
ComSend()
DoEvents
如果内容较大,后面加上DoEvents

Un1 2000-05-19
  • 打赏
  • 举报
回复
一定要使用二进制方式,否则非可打印字符将丢失。接收:

Private Sub MSComm1_OnComm()
With MSComm1
Select Case .CommEvent
Case comEvReceive
Dim bt() As Byte
bt = .Input

'现在数据全在bt数组里了。
Case ...
End With
End Sub
programart_life 2000-05-18
  • 打赏
  • 举报
回复
在他的缓存里没有很大的区别。但是在你读出来的时候就有区别了,如果你的数据中带有二进制大于127的字符,采用文本方式发送,可能导致通讯不成功。这时应该采用二进知方式发送,即可以发送任意字符,如你的数据是纯可读字符(含空格,0x00等),即可用文本方式发送,接受,这样你不用作数据转换也能收到可读的数据,而二进制方式,则无论你发送的是什么数据,均要做数据转化,BCD码,知道吗?就是他
why2000 2000-05-14
  • 打赏
  • 举报
回复
发送数组即可:
dim arrayTest(3) as byte
arrayTest(0)=&Ha1
arrayTest(0)=&Ha1
arrayTest(0)=&Ha1
commPort.Output=arrayTest

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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