MATLAB调用串口

MATLAB调用串口,第1张

最新版matlab,现在推荐使用serialport *** 作,相较于原函数serial()更加简单,创建速度更快。

官方链接为:

https://ww2.mathworks.cn/help/matlab/ref/serialport.html

其中,port为端口号,baudrate为波特率,Name可选read、readline、write等等,具体参考链接。

按照我的理解,matlab中创建的串口为虚拟串口,退出即会抹除串口使用痕迹

通俗理解就是,matlab的.m程序运行结束后,这个串口发生过的事情不会在串口中留存

传统的串口调试助手退出时会保留串口状态

所以matlab中使用串口时,要在.m文件运行过程中进行一切 *** 作

感性入门篇:在command window里键入tmtool你就入门了

tmtool也即test&measurement tool是一个通信工具 可以自动生成代码

下面附上串口通信程序的模板:

%注:此m文件无握手功能

clear,close all

%开启串口通信,以COM3为例

obj1 = instrfind('Type', 'serial', 'Port', 'COM3', 'Tag', '') %MATLAB将串口当做文件来读写

if isempty(obj1)

obj1 = serial('COM3')

else

fclose(obj1)

obj1 = obj1(1)

end

fopen(obj1)

%中间这个部分是程序的具体功能实现部分,自己写拉

%发送控制指令

switch y

case 1

fwrite(obj1, evalin('base', '0'))

case 2

fwrite(obj1, evalin('base', '1'))

case 3

fwrite(obj1, evalin('base', '2'))

otherwise

disp('error')

end

%关串口

fclose(obj1)

delete(obj1)

clear obj1

你最好连上硬件试试,这样才学得进去。共同进步啊~

s=serial('com1')//设置串口

set(s,'BaudRate',9600,'StopBits',1,'Parity','none','DataBits',8,'InputBufferSize',255)

//串口的一些设置,注意,'none'有引号,有些值如InputBufferSize只能在串口关闭时才能设置,

//所以不建议先打开串口

fopen(s)//打开串口

fwrite(s,100)//打100(十进制)写入串口也可以是一维数组,可以用示波器测com的第3个引脚

a=fread(s)

//读出串口数据,由于matlab是顺序执行的,所以这里读不到100,

//程序会卡在这里直到读到数据为止,好像是存完buffer吧,这里忘了。

//自己从com的第2个引脚给数据试试看就清楚了

fclose(s)//关闭串口


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12034649.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存