硬件:STM32F103ZET6精英版
软件:MATLAB2021b
问题:用MATLAB程序打开STM32的串口时,STM32复位,原本闪烁的灯不闪,LCD屏熄灭,但是电源灯还是亮的。
解决方案:在打开串口的函数后面添加setDTR(com,false)和setRTS(com,false)。
代码如下:
com=serialport(port,baut,"Parity",parity,"DataBits",databit,"StopBits",stopbit,"Timeout",1,"ByteOrder","big-endian");
setDTR(com,false)
setRTS(com,false)
注意:上面的顺序不能改变,不然可能无效。
可能原因:
当DTR和RTS引脚先后设为低电平时Q2截止,RESER引脚为高电平,电路未复位。
结果:MATLAB能正常接收数据。
疑惑:其他情况为什么会复位?望大神指导。