最新版matlab,现在推荐使用serialport *** 作,相较于原函数serial()更加简单,创建速度更快。
官方链接为:
https://ww2.mathworks.cn/help/matlab/ref/serialport.html
其中,port为端口号,baudrate为波特率,Name可选read、readline、write等等,具体参考链接。
按照我的理解,matlab中创建的串口为虚拟串口,退出即会抹除串口使用痕迹
通俗理解就是,matlab的.m程序运行结束后,这个串口发生过的事情不会在串口中留存
传统的串口调试助手退出时会保留串口状态
所以matlab中使用串口时,要在.m文件运行过程中进行一切 *** 作
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)//关闭串口
还是设定每隔开一秒进行一次读取的 *** 作但是每次读的时候不限定读取的字节数,直接把缓冲区内的数据都读出来
然后取最后一个字节的数据作为当前数据
因为每次读取数据都会把缓冲区清空,所以只要缓冲区大小足够存下一秒内主机发送的全部数据,缓冲区就不会溢出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)