PC机与单片机之间的通讯 Mscomm控件

msl_ocean 2010-05-11 10:05:11
PC机与单片机之间的通讯
控件类型 名称 Caption属性 作用

-------------------------------------------------------------------------------

Text Text1 ------- 输入所要发送的信息

Text Text2 ------- 显示接收到的信息

CommandButton Command1 发 送 ---------

CommandButton Command2 退 出 ---------

Label Label1 发送的数据 提示

Label Label2 接收的数据 提示
代码如下:
Private Sub Mscomm1_Oncomm()

'...通讯事件发生

Dim indata As Variant

Dim bte(0) As Byte

Select Case MSComm1.CommEvent

Case comEvReceive '...有接受事件发生

indata = MSComm1.Input

'...注意!要通过MSComm控件发送或接收二进制数据必须用Variant类型的变量对二进

'...制Byte类型的变量进行转换!

bte(0) = AscB(indata)

Text2.Text = bte(0)

MSComm1.InBufferCount = 0 '...清空输入寄存器

End Select

End Sub

Private Sub Command1_Click()

'...发送数据

Dim Num As Integer

Dim outbte(0) As Byte

Num = Val(Text1.Text)

outbte(0) = CByte(Num)

MSComm1.OutBufferCount = 0 '...清空输出寄存器

MSComm1.Output = outbte(0) '...发送数据 //调试出错,无效的属性值

End Sub

Private Sub Command2_Click()

'...退出

Unload Me

End Sub

Private Sub Form_Load()

'...初始化

MSComm1.CommPort = 1 '...使用Com1口

MSComm1.Settings = "9600,n,8,1" '...设置通讯参数

MSComm1.PortOpen = True '...打开串口

End Sub
...全文
131 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldy_216 2010-05-18
  • 打赏
  • 举报
回复
用VARIANT 变量收发
QQ:184324486
ldy_216 2010-05-18
  • 打赏
  • 举报
回复
用VARIANT 变量收发
msl_ocean 2010-05-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chinaboyzyq 的回复:]
MSDN
Output 属性可以传输文本数据或二进制数据。用 Output 属性传输文本数据,必须定义一个包含一个字符串的 Variant。发送二进制数据,必须传递一个包含字节数组的 Variant 到 Output 属性。

这句的的意思是不可以直接发送数组元素,而是发送包含数组成员的数组名。
[/Quote]
那可以发送十进制数吗?最多可以发送多少位?
chinaboyzyq 2010-05-11
  • 打赏
  • 举报
回复
MSDN
Output 属性可以传输文本数据或二进制数据。用 Output 属性传输文本数据,必须定义一个包含一个字符串的 Variant。发送二进制数据,必须传递一个包含字节数组的 Variant 到 Output 属性。

这句的的意思是不可以直接发送数组元素,而是发送包含数组成员的数组名。

zdingyun 2010-05-11
  • 打赏
  • 举报
回复
MSComm1.Output = outbte
老人参 2010-05-11
  • 打赏
  • 举报
回复
Private Sub Command6_Click() '手动发送
On Error Resume Next
'Text4.Text = CLng("&H" & Text4.Text)
Av = Val(CLng("&H" & Text4.Text))
SendCmd(0) = Av
msComm1.Output = SendCmd()
End Sub
shm_boy 2010-05-11
  • 打赏
  • 举报
回复
看看……
贝隆 2010-05-11
  • 打赏
  • 举报
回复
看看这个,串口调试器(含代码):
http://download.csdn.net/source/1262066
zdingyun 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 msl_ocean 的回复:]
引用 2 楼 zdingyun 的回复:
VB code
MSComm1.Output = outbte

那我的定义也就要改啦
[/Quote]
定义不改,是正确的.
msl_ocean 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zdingyun 的回复:]
VB code
MSComm1.Output = outbte
[/Quote]
那我的定义也就要改啦
msl_ocean 2010-05-11
  • 打赏
  • 举报
回复
谢谢各位啊

1,453

社区成员

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

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