fscanf和fgets从虚拟串口设备提供不完整的读取

时间:2013-12-02 14:54:02

标签: matlab serial-port fgets scanf

我正在使用matlab来读取串口设备的输出。当我运行命令fscanffgets并正确读取设备时,它会显示为:

!b,    3,-1532,  -91, -159, -446, -996, 444, 488, 454,5050#

如果没有,它会吐出一些不完整的读数,例如:

, 454,5050#

50, -992, 444, 488, 454,5050#

我不确定问题可能是什么,以致读数不完整。可能是设备设置没有正确设置。我在循环中使用这些命令来获取在线读数,当读出不完整时,整个脚本崩溃。可能非常令人沮丧。请帮助=)

编辑:用于衡量的示例代码

`set(glove, 'InputBuffersize', 128); 
 set(glove, 'FlowControl', 'none');
 set(glove, 'BaudRate', 115200);
 set(glove, 'Parity', 'none');
 set(glove, 'DataBits', 8);
 set(glove, 'stopBit', 1);
 set(glove, 'Timeout',100);

 disp(get(glove,'Name'));
 prop(1)=(get(glove,'BaudRate'));
 prop(2)=(get(glove,'DataBits'));
 prop(3)=(get(glove, 'StopBit'));
 prop(4)=(get(glove, 'InputBufferSize'));

 disp([num2str(prop)]);

 fopen(glove);

 test = fgets(glove);

 fclose(glove);`

0 个答案:

没有答案