当我在MATLAB代码中使用 fscanf 时,我在数据包中输入'm able to read data from a serial port. However, I cannot use this function in a '数据包输入' and '数据包输出'从串口发送和接收数据,但是后来我无法在这些块中读取字符串格式 .
我在MATLAB脚本中使用以下代码:
gotoConfig = hex2dec({'00','6E'})
fwrite(s,gotoConfig)
R0 = 24*abs(fscanf(s,'%e',14))*2*pi
matlabSimulink中使用串口频率:
1. 模块介绍
本文使用的模块都在库函数的Instrument Control Toolbox 里面。
1.1 串口参数设置模块
串口通信第一步首先是配置串口,配置模块如下:
1.2 发送数据模块
要想在Simulink里面发送数据,得先在库浏览器里面找到串口发送模块
1.3 接收数据模块
要想在Simulink里面接收数据,先在库浏览器里面找到串口接收模块
1.4 显示数据模块
调试数据必须使用一个显示模块,但是scope在这里是不合适的,Display 刚刚好。
可以选择很多数据类型,这里选择十六进制,方便调试。
2. 模块配置
2.1 基本参数配置
串口的基本参数配置:串口号,波特率,数据位,奇偶校验,停止位,传送顺序,是否硬件流,响应时间。
串口号:根据硬件设备来选择(若插硬件,必须先插上串口,再打开MATLAB才会显示)
波特率:与对应设备一致即可,我这里是使用115200.
奇偶校验位:一般数据不使用,可通过传输数据中1的个数来检验数据是否有传输错误。
传输顺序:在传输大于八位的数据时必须关注,先传输低八位使用 little-endian,否则 使用endian-little
其他一般选默认即可。
2.2 发送参数配置
发送参数只要选择端口号和帧头就可以了,这里直接发送数据,不要帧头。
2.3 接收参数配置
如下图配置好接收参数,端口号选择com1,数据类型就选择基础的 uint8 ,0.01s接收一次。
3. 串口通信测试
用虚拟串口进行测试,申请一对串口Com1和Com2
这里选择把接收的数据给发送回去。
可以看到,发送的21,接收成功。
simulink里面有个Serial Configuration模块,这里可以选择输出到哪个串口,可以控制串口输出的。当然,如果协议复杂的话,自己写matlab代码。 把这个串口连接到dsp就行啦。 做小车的话,如果小车要跑,可以淘宝找找蓝牙串口。你help function一下,会看到这句:The name of a function, as defined in the first line of the M-file, should be the same as the name of the file without the .m extension. 根据你写的function [sol,eval]=fitness(sol,options),我觉得你得先把文件保存一下,名字是fitness.m
还有,你的数组d里面的分号要去掉
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)