Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)

我有一个带有C应用程序的Raspberry PI B,可以与Arduino进行通信.我能够读,写,串行连接perfeclty stable.

现在,我买了一个Raspberry PI3,以便有更多的性能和wifi集成.
花了很多时间后,我让QT应用程序再次运行,但串行通信无法正常工作.
我连接了Arduino IDE的串口监视器并检查了它与RPI 1它工作正常,我看到所有消息都按照我的协议发送,所以我确信我可以分析我用Raspberry P3编写的内容.
不幸的是,我只收到奇怪的字符:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》
我尝试了不同的波特率,例如115200和9600(预期的波特率!),但结果不同但同样错误.

我想报告我在Raspberry P3中所做的事情:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》
我禁用了控制台的串口(据我所知)
此设置将自动修改选项:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》

enable_uart=0

这很奇怪,因为在网络上我发现谁建议启用,谁清楚地写道它应该被禁用,因为它指的是“控制器串行”.
然后,我添加了一些线(你可以看到红色的形状),以便在miniuart中移动蓝牙处理,将cpu频率固定为250并将默认波特率固定为9600.
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》
然后,我用这个命令禁用蓝牙:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》
我真的不确定,但在某些帖子中建议的东西.
最后,这是我的QT c应用程序中的设置:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》
我将端口名称更改为“ttyS0”,(相同的“serial1”).

所以..我想要实现的是设置我的pi3串行通信,就像使用piB一样,连接在相同的引脚GPIO14和GPIO15上.
对蓝牙无关紧要,我不会用它.

我错过了什么或做错了什么?

Raspberry PI3的PINOUT似乎等于Raspberry PI B的PINOUT:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》

而Raspberry B的PINOUT是:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》

但我发现了一件有趣的事:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》
似乎配置有点错误,因为GPIO14和GPIO15都是INPUTS !!

最佳答案 我终于修好了!

正如我写的那样,我在网上发现了很多建议,但经常是不和谐的……所以我会在这里报告如何设置我的Raspberry p3以便正常工作.

1)升级了我的系统

sudo apt-get update
sudo apt-get dist-upgrade

2)启用UART控制台

sudo raspi-config

高级选项 – >串行:
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》

注意:它会自动在config.txt文件中设置1 enable_uart.

3)编辑config.txt

sudo nano /boot/config.txt

我基本上添加了一行以禁用蓝牙端口(在我的情况下不使用)
《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》

我还将cpu频率的限制删除到250,在论坛中发现很多次,因为你可以看到它被评论(#).
您还可以看到使用raspi-config接口完成的“enable_uart = 1”设置.

4)编辑文件cmdline.txt

sudo /boot/cmdline.txt

《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》

我删除了一些字符串,其中包括:

.... console=serial0,115200 ....

5)应用程序指的是serial0

《Raspberry pi3:C串口通讯无法正常工作(Raspberry pi正在运行!)》

6)完成!

我希望这个循序渐进的指南适用于其他人或一般会有所帮助.

点赞