查看单个帖子
旧 2008-05-22, 19:29   #1
lily1202
初级会员
 
注册日期: 2008-05-16
年龄: 42
帖子: 2
声望力: 0
lily1202 正向着好的方向发展
默认 matlab与串口通信的问题

我的问题其实就是用超级终端对串口实现的所有操作,是不是应该通过matlab都可以实现呢?

我现在根据控制器和超级终端的通讯方式可以实现matlab对串口数据的读取,也就是说在matlab中对串口写入参数地址,然后回车,串口就能将能参数值读进matlab,比方说用如下的形式:
fprintf(s,'%s','R0203')
fprintf(s,'%s','\r\n')
a = fscanf(s)
这里可以通过写入参数地址R0203读出温度值.

但其实我在超级终端上除了读参数值以外,还可以通过一些命令控制测量过程,比方说meas让测量过程开始,save可以将改变的参数值保存等等.
我现在的问题就是这些控制命令在超级终端上虽然好用,但为什么我根据超级终端的方式对matlab写入时,是无效命令呢?
比方说在超级终端上写入meas,然后回车,测量过程自动开始,而我同样对matlab进行如下写入时
fprintf(s,'%s','MEAS')
fprintf(s,'%s','\r\n')
b=fscanf(s)
就会报错 Illegal Command: MEAS\R

matlab的串口程序和超级终端是对同一个串口进行操作,为什么会有这种差别呢?难道matlab只能从串口里读出数据,而通过matlab控制串口进行具体指令操作(如开始测量等)是不行的呢?还是我的理解哪里有问题?
还请各位高手指教,谢谢!
lily1202 当前离线   回复时引用此帖