【问题标题】:Raspberry pi3: C++ serial communication not working properly (Raspberry pi was working!)Raspberry pi3:C++ 串行通信无法正常工作(Raspberry pi 工作正常!)
【发布时间】:2016-12-13 07:29:31
【问题描述】:

我有一个带有 C++ 应用程序的 Raspberry PI B+,它能够与 Arduino 通信。我能读能写,串口连接非常稳定。

现在,我买了一个树莓派 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:

而 Raspberry B+ 的 PINOUT 是:

但我发现了一件有趣的事情: 似乎配置有问题,因为 GPIO14 和 GPIO15 都是输入!!

【问题讨论】:

  • 您是否检查过 GPIO 引脚映射的更改没有影响您的代码?引脚的数量和位置发生了变化。
  • 对不起,我不能完全关注你:GPIO 的变化是什么意思?我不期待任何变化.. 引脚分配(我在上面报告)是平等的,我的应用程序也是平等的。
  • 抱歉误读了您的模型转换。检查此 URL:raspberrypi-spy.co.uk/2012/06/… 那里有一条评论可能会有所帮助...
  • 不出所料,也有报道称:Pi 3在Pi 1 Model A+、Pi 1 Model B+和Pi 2 Model B的布局相同。。所以应该不是问题。
  • Pi B Rev1 中除 GPIO0/GPIO1 之外的所有内容在以后的版本中变为 GPIO2/GPIO3。至少根据这个:raspi.tv/wp-content/uploads/2014/07/… --> 我想可能不正确。

标签: c++ qt serialization


【解决方案1】:

我终于修好了! 正如我所写的,我在网上找到了很多建议,但常常是不一致的。所以我将在这里报告我如何设置我的 Raspberry p3 以使其正常工作。

1) 升级了我的系统

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

2) 启用 UART 控制台

sudo raspi-config

高级选项 --> 序列号:

注意:它会自动将config.txt文件中的enable_uart设置为1。

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) 完成!

我希望这个分步指南对其他人有用,或者总体上会有所帮助。

【讨论】:

  • 可以分享一下树莓派上的c++代码,用于串口通信吗?我正在开发 Qt Quick 应用程序,我想从我的 Arduino 中读取一些数据,我真的很挣扎
  • 最好打开一个新帖子来显示您的代码和您的问题,因为我还围绕 Raspberry 和 Arduino 创建了硬件,因为通信是通过 RS485 完成的,所以我也有一些硬件。此外,代码很复杂,在这里复制粘贴可能没有意义。请打开专门的帖子,我或其他人会尽力帮助您
猜你喜欢
  • 2018-12-08
  • 1970-01-01
  • 2017-08-24
  • 2022-06-12
  • 1970-01-01
  • 2017-07-31
  • 2016-12-01
  • 2015-06-28
  • 2017-10-05
相关资源
最近更新 更多