簡體   English   中英

Raspberry pi3:C ++串口通訊無法正常工作(Raspberry pi正在運行!)

[英]Raspberry pi3: C++ serial communication not working properly (Raspberry pi was working!)

我有一個帶有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: 在此輸入圖像描述

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

我希望這個循序漸進的指南適用於其他人或一般會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM