树莓派连接串口时无法开机

树莓派连接串口时无法开机

我的情况

因为项目需要,因此需要使用树莓派控制电机,而电机是一上电就会给树莓派发送数据,而这时树莓派还正处于开机时,结果就是开机失败。当将串口断开时就又可以正常开机了。串口的连接方式是使用了树莓派的GPIO口ttyAMA0对应的RX和TX。

我的思考

我个人认为是因为开机时树莓派要检查GPIO口,而检测到有一个口电压不对,因此出现了错误,导致无法开机。

我的解决过程

首先就是打开bing和Google进行搜索解决方法,找了好久,并没有解决。最终我把目光投向了chatgpt
首先是问他这个问题

在这里插入图片描述
在这里插入图片描述
这时我还没说我是通过USB连接的串口还是GPIO连接的串口,他居然判断是否是GPIO连接的串口,于是我感兴趣的把目光投向了他说的GPIO引脚的占用问题
在这里插入图片描述
于是他这给出了这个答案,我便继续追问
在这里插入图片描述
在这里插入图片描述
经过这样的设置后,仍旧没有解决问题,但是给了我思路,同时我发现我的树莓派的config.txt不起作用,起作用的是/boot/comfirm/config.txt(好像是这个),

重点

于是我询问他怎么开机时关闭对GPIO的检查
在这里插入图片描述
我把它写到了我对应的起作用的config.txt文件中,的确连接电机时可以开机了。但是问题出现了,我打开串口时接收不到电机发给我的数据了,这也不太行 啊
原因时我通过gpio readall命令读取到那两个串口的引脚的模式改成了in而正常能够读取数据的格式应该是ALT0,虽然我不知道这是啥模式。

在这里插入图片描述
于是它给我推荐了一种开机后修改引脚模式的指令,于是我通过该指令可以设置指定的GPIO口为ALT0模式这时电机的数据就可以接收到了

在这里插入图片描述
经过整个过程后我发现,仅关闭串口RX对应的GPIO检查就可以开机了,因为只是这个口对开机产生了影响。而设置RX是用的是物理口编号,而开机后修改模式后用的是BCM编号。总之解决了连接电机开机并开机后又能接收数据,解决了我的问题。

参考

[1] chatgpt :https://chat.openai.com

猜你喜欢

转载自blog.csdn.net/weixin_41756645/article/details/130141548