初学matlab软件,用了一个if函数,想经过判断后串口输出结果dataA,然后过1秒输出结果dataB,但是用串口检测软件,不会得到输出值。
图像窗口的label已经是black了,但是串口不会输出结果。
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/092236758376181.png?x-oss-process=image/auto-orient,1/resize,w_320,m_lfit)
以下是得不到结果的代码(我修改的部分)
if label=='balck'
c=2;
fwrite(s,dataA,"uint8");
pause(1)
fwrite(s,dataB,"uint8");
end
以下是全部代码(网上随便找了一个分享的例子,我想自己改动一下,来学习)
clear
delete(instrfindall);
s = serial('COM1','BaudRate',9600);
fopen(s);
dataA=('A0 01 01 A2');
dataB=('A0 01 00 A1');
camera = webcam;
load('Alex_Public_32');
c=0;
while true
picture = camera.snapshot;
picture = imresize(picture,[227,227]);
label = classify(net,picture);
if label=='yellow'
c=1;
end
if label=='balck'
c=2;
fwrite(s,dataA,"uint8");
pause(1)
fwrite(s,dataB,"uint8");
end
if label=='white'
c=3;
end
image(picture);
title(char(label));
drawnow;
end
fclose(s);
delete(s);
我尝试过不经过if判断,直接进行fwrite输出串口结果,串口软件是能得到结果的。所以我觉得应该是加到if后面,就没办法输出了。
把fwrite提出来,不放到if后面,就能得到结果:(结果在图片上)
clear
delete(instrfindall);
s = serial('COM1','BaudRate',9600);
fopen(s);
dataA=('A0 01 01 A2');
dataB=('A0 01 00 A1');
fwrite(s,dataA,"uint8");
pause(1)
fwrite(s,dataB,"uint8");
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/351434758376156.png?x-oss-process=image/auto-orient,1/resize,w_320,m_lfit)
刚开始学matlab,没有什么编程基础,实在不知道为什么会导致加到if后面,串口就输出不到结果。
期望CSDN朋友们多多赐教。感激不尽!