当时我在建立STM32 mini板和MATLAB 的USB串口通信时,发现在MATLAB配置好串口的相关代码后,在STM32 mini板上的程序也没有任何问题的情况下,运行MATLAB程序时,STM32mini板居然出现复位情况,导致MATLAB不能正常读取从STM32 mini板发来的串口数据。当时的我很苦恼,各种找bug,然而发现代码这些都没问题啊,折腾了好久。所以我就开始在网上各种找资料,历尽千辛万苦,功夫不负有心人,我终于在STM32的一个论坛上找到了答案,这个论坛上也有别的网友出现了这个问题。
我得到答案的网址:
http://www.openedv.com/forum.php?mod=viewthread&tid=28178&highlight=mini%2B%2Bmatlab
还是人多力量大啊,果然有网友给出了答案,原来在MATLAB串口配置的代码里需要加上两行代码:
s.DataTerminalReady='on';
s.RequestToSend='off';
这里的“s”就是在MATLAB里创建的串口设备对象。至于这两行代码的具体意思,我没有过多追究,我的目的是能解决问题就行。
当我在MATLAB的m文件里面加上这两行后,运行MATLAB程序,发现STM32 mini板复位的问题迎刃而解。我真是感叹网友的力量真的很强大啊!!
所以我觉得我有必要把这些东西分享出来,让大家在遇到的时候,能够在网上找到答案。