注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

苍茫大地的博客

 
 
 

日志

 
 
关于我

盒子里的梦想

文章分类
网易考拉推荐

matlab 串口通信小实验(转自萍水相逢日志)  

2012-05-04 15:31:04|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近看到有人讨论matlab 串口通信的话题,结合以往的VB串口通信,做了这么个小实验。

需要用到的软件:matlab 7,VB 6,还有一个就是虚拟串口 Virtual Serial Port Driver!

前面2个软件就不用解释了,虚拟串口 Virtual Serial Port Driver 就是生成一对虚拟串口2和3,
本实验中一个matlab来存取COM2,另一个COM3就用VB编程打开,而且这2个串口是连接在一起的,一个输出数据,就可以从另外一个得到数据!

VB程序
放一个MSComm 控件在form上,在 Form_Load里设置相关属性,当然还包括串口通信参数字符串:
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.InputMode= comInputModeBinary   
MSComm1.RThreshold = 1
MSComm1.Settings = "9600,e,8,1"
MSComm1.PortOpen = True
End Sub
再在MSComm1的OnComm事件里加入数据生成代码:
Private Sub MSComm1_OnComm()
Dim i%
Dim Data(1024) As Byte
Randomize
Select Case MSComm1.CommEvent
Case comEvCD
Case comEvCTS
Case comEvDSR
Case comEvRing
Case comEvReceive
For i = 0 To 100
Data(i) = CByte(255 * Rnd())
Next i
MSComm1.Output = Data
Case comEvSend
End Select
End Sub
当收到对方一个数据时,触发此事件。这里用随机函数来生成100个数,赋值给Data数组,然后用串口输出!
运行VB程序,串口3就出在打开状态,当收到一个字符,就会发送出生成的100个byte型随机数据!

Matlab程序
clear
u=uint8(zeros(1024,1));
ser_port1=serial('COM2')
ser_port1.InputBufferSize=4096;
ser_port1.OutputBufferSize=4096;
ser_port1.Timeout=10;
ser_port1.BaudRate=9600;
ser_port1.Parity='even';
ser_port1.StopBits=1;
fopen(ser_port1);
fwrite(ser_port1,'S');
u=fread(ser_port1,100,'uint8');
fclose(ser_port1)
delete(ser_port1)
clear ser_port1
plot(u)
grid

程序运行时,先初始化u,然后设置串口通信的相关数据,打开串口2,发送一个字符S,对方收到后会发出100个数据,matlab 接收这100个数据,存放在u中,关闭串口,清楚变量,图示变量u 中的数据!

以上是用虚拟串口软件来模拟串口通信环境,实践中用2台电脑的串口建立真实的串口通信环境也可以。当然,连接时采用的是交叉线,即A机的发送Tx连B机的接收Rx,A机的接收Rx连B机的发送Rx,信号地相连。

本实验仅起抛砖引玉的作用,如果朋友们有兴趣还可以深入,比如建立握手过程、每次指定数据个数,或者PC串口连接单片机的通信环境等等。

另外,需要虚拟串口软件可以去官方网站去下载,也可以联系索取。
  评论这张
 
阅读(181)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017