android 串口調試工具_樹莓派通用串口通信實驗

200dedb3563aae95fc5f711b13b9a6a7.gif

一、介紹

對于樹莓派 3B+來說,他的UART功能有三種:1、內部藍牙使用;2、控制終端使用;3、與其他設備進行串口通信。

在樹莓派USB TO TTL模塊實驗中學習了通過串口對樹莓派進行控制臺控制,讓串口作為控制終端調試口即 serial console,但是在項目中常常會使用串口同其他傳感器、單片機等設備進行通用串口通信。

本實驗中設置樹莓派的串口為通用串口與PC電腦的串口調試工具進行通信。

二、組件

★Raspberry Pi 3 B+主板*1?快速購買

★樹莓派電源*1

★USB TO TTL模塊*1

★面包板*1(可選)

★40P軟排線*1

★跳線若干

三、實驗原理

(一)樹莓派的串口

樹莓派從大的方向來說一共出了3代,每一代的CPU外設基本相同,但內核不同,外設里面一共包含兩個串口,一個稱之為硬件串口(/dev/ttyAMA0),一個稱之為mini串口(/dev/ttyS0)。

硬件串口由硬件實現,有單獨的波特率時鐘源,性能高、可靠,mini串口性能低,功能也簡單,并且沒有波特率專用的時鐘源而是由CPU內核時鐘提供,因此mini串口有個致命的弱點是:波特率受到內核時鐘的影響。內核若在智能調整功耗降低主頻時,相應的這個mini串口的波特率便受到牽連了,雖然你可以固定內核的時鐘頻率,但這顯然不符合低碳、節能的口號。

在所有的樹莓派板卡中都通過排針將一個串口引出來了,目前除了樹莓派3代以外 ?,引出的串口默認是CPU的那個硬件串口。而在樹莓派3代中,由于板載藍牙模塊,因此這個硬件串口被默認分配給與藍牙模塊通信了,而把那個mini串口默認分配給了排針引出的GPIO ?Tx Rx。

樹莓派的串口默認為串口終端調試使用,如要正常使用串口則需要修改樹莓派設置。關閉串口終端調試功能后則不能再通過串口登陸訪問樹莓派,只能通過ssh或者遠程桌面連接樹莓派后進行控制。

f5bf832b48040923a122190403a5d42d.png

上圖紅框中就是引出的串口IO(GPIO ?14/15),如果我們需要通過UART外接模塊,默認情況下必須得使用性能很低的mini串口了,而且隨著內核主頻的變化,還會造成波特率的變化導致通信的失敗,幾乎很難使用。所以我們一般要恢復硬件串口(/dev/ttyAMA0)與GPIO ?14/15的映射關系,使得我們能夠通過GPIO使用高性能的硬件串口來連接我們的串口設備。

恢復映射關系前先看下默認的映射關系:

542f6b963c5ddd2bd9aa1fc750fd11aa.png

serial0是GPIO引腳對應的串口,serial1是藍牙對應的串口。如圖所示,serial0(GPIO串口)默認使用的是ttyS0(mini串口),serial1(藍牙)使用的是ttyAMA0(硬件串口)。

四、實驗步驟

第1步:連接電路。使用USB TO TTL模塊連接好樹莓派的串口和PC電腦的USB接口。

樹莓派(name)T型轉接板(BCM)USB TO TTL模塊
TXDTXORXD
RXDRXITXD
GNDGNDGND

下圖中的USB要插到筆記本電腦上哈,為方便拍照就沒插上。連線很簡單,電路圖就沒畫了。

c52173a5812b390ddb51ee36191b4f6d.png

第2步:首先我們先嘗試使用默認的ttyS0(mini串口)來進行通用串口通信。

(1)設置樹莓派,在Raspberry Pi Configuration中將Serial Port設置為Enable,但是Serial Console都要Disable,即關閉串口控制臺功能,然后必須重啟樹莓派生效。

a09dae3a70b772157399417640bf3502.png

(2)PC電腦上運行串口調試工具,串口驅動的安裝請參考樹莓派基礎實驗35:USB TO TTL模塊實驗中的內容。如下圖設置好參數,點擊“打開串口”。

1f0738bdccf63e70abce46b6defcbda5.png

(3)樹莓派上安裝minicom,啟動時配置參數串口為/dev/ttyS0,波特率(9600)。在樹莓派上輸入信息,在PC上的串口調試工具就會收到該信息。

sudo?apt-get?install?minicom??????#安裝minicomsudo?minicom?-D?/dev/ttyS0?-b9600???#啟動minicom

6ea177431a400d0bc51b3f260ff4906f.png

(4)PC上的串口調試工具發送字符信息,樹莓派上也會顯示該信息,證明兩者的UART雙向通信成功。

63a4babe325dd98f58aa314084516638.png

(5)這里要注意的是:進入minicom工具,按提示按CTAL -A,然后按Z后會顯示幫助信息。若再按O可以進入Minicom配置界面。

1422661c5b2edd34c8d004bc4ce75752.png

進入Minicom配置界面,再選擇Serial port setup,可以對樹莓派的串口進行設置。

482433aff00c0d5166df6783da3c5f26.png

進入串口設置,可以設置樹莓派串口的設備、波特率等:

8731fdc7f6c3c86124e18a7fe5c71213.png

第3步: 為了在樹莓派3中通過GPIO使用高性能的硬件串口,我們必須將分配給藍牙使用的硬件串口與分配給IO排針的mini串口進行對換,這必然會使得藍牙模塊的功能受到影響,不過這里我們不使用藍牙。

(1)在/boot/overlays文件內有兩個文件,README 和pi3-miniuart-bt.dtbo,首先查看有沒有相關文件。

f94ec7b658d54d9ebbaedf00ea0b619e.png

(2)README文件中說明了此文件的功能,是將樹莓派3的藍牙切換到mini串口(ttyS0),并且恢復硬件串口(ttyAMA0)到GPIO14&15引腳中。

e39c5342829da27611589c4d3f9b0b95.png

(3)修改配置文件

sudo?vim?/boot/config.txt

在該文件中加一行代碼

dtoverlay=pi3-miniuart-bt

141171dead25905ff234c29936dcf505.png

保存后重啟樹莓派,再查看映射關系已經改變:

272365f4ca7e20005aaaf10491d86bfe.png

(4)進入minicom,發送信息給PC串口調試工具。與第2步不同的是:啟動時配置參數串口必須為/dev/ttyAMA0,波特率可以更改為其它的,這里設置為115200。

pi@raspberrypi:~?$?sudo?minicom?-D?/dev/ttyAMA0?-b115200

ad067bf4175ad98651a0bc1042888871.png

經過測試,雙向通信成功!這里要注意,第2步里面關閉串口控制臺功能的設置不能變,即Serial Console要Disable。

補充: 前面步驟當中的部分設置使用的是圖形界面配置,在不能使用圖形界面時,也可以直接修改配置文件。

(1)上面串口的開啟的步驟中,是在Raspberry Pi Configuration 界面中,將Serial Port選項ENable,也可以直接修改/boot/config.txt文件。

sudo?vim?/boot/config.txt

af47a5cadbab993e5af3370baac1857d.png

enable_uart=1即為Serial Port Enable串口開啟,enable_uart=0即為Serial Port Disable串口關閉。

(2)上面關閉串口控制臺功能,是在Raspberry Pi Configuration 界面中,將Serial Console選項Disable,可以直接修改/boot/cmdline.txt文件。

sudo?vim?/boot/cmdline.txt

修改前:

5ed5df21b57c271146510ce1f3b307bf.png

修改后:

b0b6ceaf8ee29a191f6a4f3088cf96cb.png

去掉了“console=serial0,115200”,即Disable了串口控制臺功能。

樹莓派3B/3B+

7ac700ecebc6c51b9c76276a5cf6844c.png

287b7f93f99c8eb3da01d01088ee2071.png

f3919c79c10404450fe2becd3799870a.png

心動購買

fa8c3b68c9b218856f36b60729b9887e.png

1bea5cb712e5d22eb062cfccbfd1693b.gif

精彩回顧

點擊文字即可閱讀全文?【教程】樹莓派上安裝Domoticz,控制家中各種設備?額溫槍實戰方案開發板,使用手冊+全套資料??ROS機器人操作系統如何安裝使用?快來了解!??技能get√丨用樹莓派4制作交通標志識別機器人??【教程】教你用Arduino制作PM2.5測量儀(使用GP2Y1010AU0F灰塵傳感器)???技能get√丨用樹莓派打造家庭自動化???【教程】不說廢話!教你在樹莓派上安裝OpenCV??【K210火炎焱燚】K210產品大集合必須火火火火火火~

dc4a9f946735195790bcad5775b016a7.png

cd74aa4baf2f4479a30e446f8a5a1c1e.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260550.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260550.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260550.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Laravel5.2目錄結構及composer.json文件解析

目錄或文件說明|– app包含Controller、Model、路由等在內的應用目錄,大部分業務將在該目錄下進行|  |– Console命令行程序目錄|  |  |– Commands包含了用于命令行執行的類&#xff…

ichat在線客服jQuery插件(可能是歷史上最靈活的)

ichat是一款開源免費在線客服jQuery插件,通過該插件,您可以自由的定制屬于自己的在線客服代碼。 ichat充分吸收傳統在線客服插件的優點,并加上自身的獨特設計,使得ichat可定制性異常強大。 ichat追求簡單實用,走小清新…

POJ 1007 DNA Sorting

按照字符串的逆序排序。 /*Accepted 100K 16MS C 863B 2012-08-03 08:30:48*/ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<algorithm> using namespace std; const int MAXN 55, MAXM 110; struct str {char…

第6章 Python 數字圖像處理(DIP) - 彩色圖像處理1 - RGB彩色模型,RGB to Gray,CMK和CMYK彩色模型,HSI彩色模型

第6章主要講的是彩色圖像處理&#xff0c;一些彩色模型如RGB&#xff0c;CMK&#xff0c;CMYK&#xff0c;HSI等色彩模型&#xff1b;彩色模型的變換關系&#xff1b;還包含由灰度圖像怎樣處理成假彩色圖像&#xff1b;使用彩色分割圖像等。本章比較少理論還有變換的描述&#…

git 命令詳解_再次學習Git版本控制工具

微信公眾號&#xff1a;PHP在線Git 究竟是怎樣的一個系統呢&#xff1f;為什么在SVN作為版本控制工具已經非常流行的時候&#xff0c;還有Git這樣一個版本控制工具呢&#xff1f;Git和SVN的區別在哪兒呢&#xff1f;Git優勢又在哪呢&#xff1f;下面PHP程序員雷雪松帶你一起詳細…

python twisted和flask_淺談Python Web 框架:Django, Twisted, Tornado, Flask, Cyclone 和 Pyramid...

Django 是一個高級的 Python Web 框架&#xff0c;支持快速開發&#xff0c;簡潔、實用的設計。如果你正在建一個和電子商務網站相似的應用&#xff0c;那你應該選擇用 Django 框架。它能使你快速完成工作&#xff0c;也不必擔心太多的技術選擇。它能提供從模版引擎到 ORM 所需…

spring-boot 定時任務

2019獨角獸企業重金招聘Python工程師標準>>> 1、建立項目 SpringBootApplication EnableAsync EnableScheduling EnableAutoConfiguration(exclude{ DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class}) ImportResource(…

使用Lightbox制作照片條

前言&#xff1a;這是國外的一個教程&#xff0c;我也很喜歡這個網頁里面的教程&#xff0c;主要技術是CSS3和JQuery以及一些JQuery的插件的應用&#xff0c;當然從這些教程我也學到了他們制作時的一些思路&#xff0c;就好像做數學題那樣&#xff0c;只要思路把握了&#xff0…

iOS- 如何改變section header

希望這個從UITableViewDelegate協議里得到的方法可以對你有所幫助&#xff1a; - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {UIView *headerView [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.…

第6章 Python 數字圖像處理(DIP) - 彩色圖像處理2 - 灰度分層(灰度分割)和彩色編碼,灰度值到彩色變換,Gray to RGB

第6章主要講的是彩色圖像處理&#xff0c;一些彩色模型如RGB&#xff0c;CMK&#xff0c;CMYK&#xff0c;HSI等色彩模型&#xff1b;彩色模型的變換關系&#xff1b;還包含由灰度圖像怎樣處理成假彩色圖像&#xff1b;使用彩色分割圖像等。本章比較少理論還有變換的描述&#…

值重新賦值_JavaScript-賦值運算符

好好學習&#xff0c;天天向上賦值運算符賦值運算符必須有變量參與運算&#xff0c;賦值運算符會做兩件事情第一&#xff0c;將變量中原始值參與對應數學運算&#xff0c;與右側的數據第二&#xff0c;將運算結果再重新賦值給變量變量位于操作符的左側賦值運算符符號&#xff1…

超聲換能器的原理及設計_超聲波發生器、變幅桿、焊頭的匹配介紹

一.超聲波換能器原理與設計(超聲波振動系統)匹配摘要&#xff1a;就塑料焊接機的超聲波換能器系統進行設計和計算&#xff0c;并用PRO- E 三維軟件繪出三維模型&#xff0c;最后進行頻率分析&#xff0c;為超聲波換能系統提供了有用的設計方法。關鍵詞&#xff1a;超聲波換能器…

位圖法

判斷集合中存在重復是常見編程任務之一&#xff0c;當集合中數據量比較大時我們通常希望少進行幾次掃描&#xff0c;這時雙重循環法就不可取了。位圖法比較適合于這種情況&#xff0c;它的做法是按照集合中最大元素max創建一個長度為max1的新數組&#xff0c;然后再次掃描原數組…

CentOS查看和修改PATH環境變量的方法

為什么80%的碼農都做不了架構師&#xff1f;>>> 查看PATH&#xff1a;echo $PATH 以添加mongodb server為列 修改方法一&#xff1a; export PATH/usr/local/mongodb/bin:$PATH //配置完后可以通過echo $PATH查看配置結果。 生效方法&#xff1a;立即生效 有效期限…

IOS簡單的登陸界面

主要需要注意的幾個問題&#xff1a; 1.導入圖片方式最好用文件導入 代碼: 在ViewController.m文件中 2.UILable常用屬性 property(nonatomic,copy) NSString *text; //設置文本內容 property(nonatomic,retain) UIFont *font; //設置字體 …

第6章 Python 數字圖像處理(DIP) - 彩色圖像處理3 -色彩變換、彩色校正、彩色圖像平滑和銳化、HSI彩色空間中的分割、RGB空間中的分割、彩色邊緣檢測

這里寫目錄標題色彩變換彩色圖像平滑和銳化使用彩色分割圖像HSI 彩色空間中的分割RGB空間中的分割彩色邊緣檢測彩色圖像中的噪聲色彩變換 # 圖像顏色分量的顯示 from PIL import Imageimg_ori Image.open(DIP_Figures/DIP3E_Original_Images_CH06/Fig0630(01)(strawberries_f…

javascript 在對象中使用 定時器_如何使用JavaScript 面向對象編程

學習目標理解面向對象開發思想掌握 JavaScript 面向對象開發相關模式面向對象介紹什么是對象Everything is object (一切皆對象)我們可以從兩個層次來理解對象&#xff1a;(1) 對象是單個事物的抽象。一本書、一輛汽車、一個人都可以是對象&#xff0c;一個數據庫、一張網頁、一…

char數組轉string_String類和其它數據類型的相互轉換

對于上面的這些包裝類&#xff0c;除了Character以外&#xff0c;都有可以直接使用字符串參數的構造函數&#xff0c;這也就使得我們將String類轉換為這些數據類型變得相當之簡單&#xff0c;即&#xff1a;Boolean(String s)、Integer(String s)、Long(String s)、Float(Strin…

ORACLE 各種閃回操作

1、Flashback Database&#xff08;利用閃回日志恢復&#xff09; Oracle Flashback Database特性允許通過SQL語句Flashback Database語句&#xff0c;讓數據庫前滾到當前的前一個時間點或者SCN&#xff0c;而不需要做時間點的恢復。閃回數據庫可以迅速將數據庫回到誤操作或人為…

【轉】介紹設置Session失效的幾種方法

轉載地址&#xff1a;http://developer.51cto.com/art/201106/269493.htm Session對象是HttpSessionState的一個實例。該類為當前用戶會話提供信息&#xff0c;還提供對可用于存儲信息會話范圍的緩存的訪問&#xff0c;以及控制如何管理會話的方法。下面介紹設置session失效的幾…