sr3 = serial('COM3'); % 使用默认设置创建串口sr3
fopen(sr3); %打开串口
fprintf(sr3,'xxx'); % 给串口写入数据
str = fscanf(sr3) %读取串口数据(无分号,可在Matlab工作区实时查看)
fclose(sr3); %关闭串口
delete(sr3);
clear sr3;
串口发送数据
s = serial('COM9');
Serial Port Object : Serial-COM9
Communication Settings
Port: COM9
BaudRate: 9600
Terminator: 'LF' %串口触发字符“换行符”(缺省符) 串口触发字符“回车符”(CR)
Communication State
Status: closed
RecordStatus: off
Read/Write State
TransferStatus: idle
BytesAvailable: 0
ValuesReceived: 0
ValuesSent: 0
fopen(s)
s.ReadAsyncMode = 'continuous'; %连续接收,缺省模式
fprintf(s,'MR YANG')
fclose(s)
delete(s);
clear s;
串口连续接收数据(不好用)
>> s=serial('COM9')
Serial Port Object : Serial-COM9
Communication Settings
Port: COM9
BaudRate: 9600
Terminator: 'LF'
Communication State
Status: closed
RecordStatus: off
Read/Write State
TransferStatus: idle
BytesAvailable: 0
ValuesReceived: 0
ValuesSent: 0
>> fopen(s);
>> s.ReadAsyncMode = 'continuous';
>> while(1)
if(s.BytesAvailable)
out = fscanf(s)
end
end
(或者str = fscanf(sr3) 读取数据)
注意:当进入死循环后,用快捷键Ctrl+C强行中断
out =
yang 123
串口中断接收数据:详细参见Matlab与单片机的串口通信-matlab…_ChunyuY19的博客-CSDN博客_matlab与51单片机通信的程序
注意,函数文件的开头,应该出现在M文件中,而不是在运行窗口输入的
只有当.m文件不busy时才能对变量进行操作