MATLAB 串口通信的实现。。
2016-04-08 21:58
507 查看
硬件上: 单片机通过串口发送数据,, 通过 USB转串口模块, 把数据发给电脑。。
在MATLAB上,对串口进行读取:
delete(instrfindall) 这一句是删除所有串口设备。。
有的时候虽然关闭了串口,但是上面仍然显示占用,,这个时候就需要这一句。。
然后是打开串口。设置一些常用的参数。
s.BytesAvailableFcnMode='byte' ;
s.BytesAvailableFcnCount=40;
这两句是接收区40字节时触发中断。。
中断函数是callback。
a=fread(obj,40); 是读取40字节。 并存到a中。
fid = fopen('b.txt','a'); 打开一个文本文档。
fprintf(fid,'%d \n',b); 按一定格式写入数据。
这两个程序写好之后,, 就可以运行了,, 运行第一个文件,如果串口不停地发上来数据,MATLAB就会一直调用callback,把数据写入文本文档中。。
需要停止串口,运行这个程序即可。。
串口发送的数据放在文本文档里不方便处理,,用下面这个数据进行读取:
A = fscanf(fileID,formatSpec,sizeA);
fscanf是读取文本文档的命令。。
formatSpec是读取格式,需要与文本文档中对应。
文档中的数据存放到A中,它的数据格式用sizeA定义,本程序是一行多列 。。
这时,串口发送的数据,就读取到A中了。。。 可以进行显示,处理等操作。。。
在MATLAB上,对串口进行读取:
delete(instrfindall) 这一句是删除所有串口设备。。
有的时候虽然关闭了串口,但是上面仍然显示占用,,这个时候就需要这一句。。
然后是打开串口。设置一些常用的参数。
s.BytesAvailableFcnMode='byte' ;
s.BytesAvailableFcnCount=40;
这两句是接收区40字节时触发中断。。
中断函数是callback。
a=fread(obj,40); 是读取40字节。 并存到a中。
fid = fopen('b.txt','a'); 打开一个文本文档。
fprintf(fid,'%d \n',b); 按一定格式写入数据。
这两个程序写好之后,, 就可以运行了,, 运行第一个文件,如果串口不停地发上来数据,MATLAB就会一直调用callback,把数据写入文本文档中。。
需要停止串口,运行这个程序即可。。
串口发送的数据放在文本文档里不方便处理,,用下面这个数据进行读取:
A = fscanf(fileID,formatSpec,sizeA);
fscanf是读取文本文档的命令。。
formatSpec是读取格式,需要与文本文档中对应。
文档中的数据存放到A中,它的数据格式用sizeA定义,本程序是一行多列 。。
这时,串口发送的数据,就读取到A中了。。。 可以进行显示,处理等操作。。。
相关文章推荐
- imadjust,imcomplement
- 自定义功能函数-matlab
- parfor, callback, real-time data reading
- Matlab中设置条件断点不会停
- MATLAB中如何读取同一路径下所有txt或mat文件小程序
- matlab 求解线性方程组之LU分解
- crossvalind Matlab 交叉验证
- Matlab 实例分析
- 遗传算法Matlab源程序
- 关于matlab用export_fig去掉白边、保存图像等问题
- Deep Learning for Computer Vision with MATLAB and cuDNN(译文)
- PCA (主成分分析)详解 (写给初学者) 结合matlab
- Matlab设置Legend横排、分块
- Matlab PCA+SVM人脸识别(一)
- Matlab设置字体大小
- Matlab PCA+SVM人脸识别(二)——GUI界面设计
- matlab中 assert(any(mask(:)));
- Matlab设置形状大小
- matlab GUI 实现文件夹选择
- 利用matlab实现最大连通域的人脸识别