项目场景:
`
想使用matlab做一个上位机,实现与下位机的通信的功能,但是最终发现在使用虚拟串口调试时上位机正常,使用串口助手与开发板通信时,也能正常发送数据,但是使用上位机与开发板通信时,只要一打开上位机串口,开发板程序就会出现卡死的现象。
问题描述
`
上位机与开发板通信时,打开上位机串口按钮,下位机开发板出现卡死现象。即使复位也不能正常运行。
原因分析:
由于开发板上有一键下载电路,可能是电路和上位机有什么冲突导致传输数据时卡死,或者说是和板载的CH340部分电路存在冲突,可以做一个实验,把开发板上的ch340与串口1断开,然后打开上位机串口依然会出现程序卡死的问题,这个时候上位机与下位机之间并没有进行数据的传输。
解决方案:
可以直接使用单独的串口转USB模块与上位机进行通信,不使用板载的CH340电路部分。这样不用经过中间多余的电路,传输数据时就不会出现卡死问题。类似的问题还有很多,比如STM32F4的下载器不能同时接NRF24L01(这个问题主要在于端口占用的问题)
https://blog.csdn.net/dudiansong/article/details/119440097