目录
一、51单片机与电脑进行串口通信
关于51单片机与电脑进行串口通信在前文已经介绍过了,有兴趣的可以参考文章:51单片机之串口通信详解及代码示例。
二、MATLAB串口通信函数
Matlab并不具备直接访问硬件的能力,但是支持面向对象技术,通过调用Instrument Control Toolbox中的serial类函数来创建串口对象,对串口对象操作就是对串口操作,使用起非常方便。同时,Matlab封装的串口对象支持对串口的异步读写操作,使得计算机在读写串口时能同时进行其他处理工作,因而能大大提高计算机执行效率。Matlab用多线程技术实现这种异步操作,通过异步读写设置,计算机在执行读写串口函数时能立即返回不必等待串口把数据传输完毕,当指定的数据传输结束时就触发事件,执行事件回调函数,可以在事件回调函数中编程,进行数据处理,这样就不会造成因等待串口传输数据引起的时间浪费。
delete(instrfindall)
删除所有串口设备
有的时候虽然关闭了串口,但是上面仍然显示占用,,这个时候就需要这一句。
serial
创建串口对象
s=serial(‘port’,‘baudrate’,4800);
在创建对象期间指定属性波特率为4800。baudrate–波特率,表示该串口每秒传送数据的量bit。
fopen(serial)
将串口对象连接到设备上
执行读写操作之前,必须使用fopen函数将串口对象(s)连接到设备
fread(serial)
从设备中读取二进制数据
A=fread(s,size);
从与端口对象连接的设备中读取二进制数据并返回给A,size指定要读取的值的最大数目,若未指定size,则由对象中的InputBufferSize属性定义。
a=fread(obj,40); %读取40字节。 并存到a中
fscanf(serial)
从串口serial读取字符或字符串(ASCII码)形式数据
A = fscanf(obj,‘format’,size) 读取 size 指定的值的数目并根据 format 进行转换。format 是 C 语言转换说明。转换设定涉及 % 字符和转换字符 d、i、o、u、x、X、f、e、E、g、G、c 和 s。
fwrite(serial)
将二进制数据写入设备
fwrite(s,A);
将二进制数据A写入到已连接s对象的设备中去。
fwrite(obj,A,‘precision’)
按照 precision 指定的精度写入二进制数据。
precision 控制为每个值写入的位数以及如何将这些位解释为整数、浮点数或字符值。如果未指定 precision,则使用 uchar(8 位无符号字符)。常用的为uint8(无符号8位整数)。
fprintf(serial)
将文本写入设备
fprintf(s,‘sdfh’);
将字符串写入与s相连接的设备中。
fclose(serial)