我有一个带有C应用程序的Raspberry PI B,可以与Arduino进行通信.我能够读,写,串行连接perfeclty stable.
现在,我买了一个Raspberry PI3,以便有更多的性能和wifi集成.
花了很多时间后,我让QT应用程序再次运行,但串行通信无法正常工作.
我连接了Arduino IDE的串口监视器并检查了它与RPI 1它工作正常,我看到所有消息都按照我的协议发送,所以我确信我可以分析我用Raspberry P3编写的内容.
不幸的是,我只收到奇怪的字符:
我尝试了不同的波特率,例如115200和9600(预期的波特率!),但结果不同但同样错误.
我想报告我在Raspberry P3中所做的事情:
我禁用了控制台的串口(据我所知)
此设置将自动修改选项:
enable_uart=0
这很奇怪,因为在网络上我发现谁建议启用,谁清楚地写道它应该被禁用,因为它指的是“控制器串行”.
然后,我添加了一些线(你可以看到红色的形状),以便在miniuart中移动蓝牙处理,将cpu频率固定为250并将默认波特率固定为9600.
然后,我用这个命令禁用蓝牙:
我真的不确定,但在某些帖子中建议的东西.
最后,这是我的QT c应用程序中的设置:
我将端口名称更改为“ttyS0”,(相同的“serial1”).
所以..我想要实现的是设置我的pi3串行通信,就像使用piB一样,连接在相同的引脚GPIO14和GPIO15上.
对蓝牙无关紧要,我不会用它.
我错过了什么或做错了什么?
Raspberry PI3的PINOUT似乎等于Raspberry PI B的PINOUT:
但我发现了一件有趣的事:
似乎配置有点错误,因为GPIO14和GPIO15都是INPUTS !!
最佳答案 我终于修好了!
正如我写的那样,我在网上发现了很多建议,但经常是不和谐的……所以我会在这里报告如何设置我的Raspberry p3以便正常工作.
1)升级了我的系统
sudo apt-get update
sudo apt-get dist-upgrade
2)启用UART控制台
sudo raspi-config
注意:它会自动在config.txt文件中设置1 enable_uart.
3)编辑config.txt
sudo nano /boot/config.txt
我还将cpu频率的限制删除到250,在论坛中发现很多次,因为你可以看到它被评论(#).
您还可以看到使用raspi-config接口完成的“enable_uart = 1”设置.
4)编辑文件cmdline.txt
sudo /boot/cmdline.txt
我删除了一些字符串,其中包括:
.... console=serial0,115200 ....
5)应用程序指的是serial0
6)完成!
我希望这个循序渐进的指南适用于其他人或一般会有所帮助.