问题现象
树莓派在和Arduino通信的过程中发现Arduino的程序一直被复位,从Arduino的开发板上也可以看出rst的灯会亮。
问题分析
这里使用python3编程,看了网上其他语言这种情况,思路应该是一样的,而且下面的并没有官方说法,是我实验的出的结论,仅供参考。
当树莓派中python程序只有发送函数没有接收函数的时候,在自身程序不执行发送的时候会将串口关闭,在有接收函数的时候则不会关闭串口。
这是为什么呢?根据实际考虑,我认为关闭串口考虑到节约能耗或者是串口多用的原因;
那有接收函数的时候为什么就不关了呢?因为发送函数自身是知道什么时候需要使用串口进行发送的,接收就需要一直挂在那里,因为不知道另一端数据什么时候会发过来。
解决方法
既然只有发送函数会导致这样的问题,那我们就把接收函数加上去,接收函数写的时候不管有没有数据过来,不进行处理就行,我们只需要挂一个接收函数让python3知道不要关闭串口就行