一、matlab将串口数据读取并储存到position中
delete(instrfindall);%注销系统之前已经打开的串口资源
clear s %清空s的数据
s = serial('COM6','BaudRate',115200);%定义串口及波特率
fopen(s)%打开串口
fwrite(s,'00AB,')%向串口写入读取电机位置指令
for i=1:8 %共8个电机position(i,:)=fscanf(s,'%d,%f',[1,2])%读取串口数据,'%d,%f'表示读取格式为整型、浮点数,用逗号分隔开。[1,2]表示数据储存为1行2列
end
position%显示输出的值
fclose(s)%关闭串口
输出结果
二、几个指令
1.sprintf(forval,val)——数据转字符串
将数据格式化为字符串或字符向量。
a=sprintf("%0.3f",123.456789)
显示结果为:
a =
"123.457"
2.vpa(val,num)——保留精度
设置数据的精度,保留多少位有效值
a=vpa(12.456789,4)
显示结果:
a =
12.46
3.strcat(string1,string2)——字符串合并
此指令主要用于将计算出的电机转角,速度等与相应的功能码组合拼接
strcat("a","b","c")
显示结果
ans =
"abc"