基于Arduino平臺(tái)的單片機(jī)控制技術(shù) 課件 第10章 串口通信實(shí)訓(xùn)項(xiàng)目設(shè)計(jì)_第1頁
基于Arduino平臺(tái)的單片機(jī)控制技術(shù) 課件 第10章 串口通信實(shí)訓(xùn)項(xiàng)目設(shè)計(jì)_第2頁
基于Arduino平臺(tái)的單片機(jī)控制技術(shù) 課件 第10章 串口通信實(shí)訓(xùn)項(xiàng)目設(shè)計(jì)_第3頁
基于Arduino平臺(tái)的單片機(jī)控制技術(shù) 課件 第10章 串口通信實(shí)訓(xùn)項(xiàng)目設(shè)計(jì)_第4頁
基于Arduino平臺(tái)的單片機(jī)控制技術(shù) 課件 第10章 串口通信實(shí)訓(xùn)項(xiàng)目設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第10章串口通信實(shí)訓(xùn)項(xiàng)目設(shè)計(jì)2024

串口也叫通用異步收發(fā)器(UART),是ArduinoUNO控制板最基本的通信接口,在此前學(xué)習(xí)中,上傳程序或調(diào)用串口監(jiān)視器都是利用串口通信實(shí)現(xiàn)。對(duì)于ArduinoUNO控制板,只有一組串口,使用時(shí)占用數(shù)字端子0(RX)和1(TX)。本章節(jié)我們來學(xué)習(xí)如何使計(jì)算機(jī)與Arduino通過串口進(jìn)行通信,控制LED燈的狀態(tài)。串口通信實(shí)訓(xùn)描述串口通信的定義和在電子設(shè)備中的重要性。串口通信與并行通信的區(qū)別。認(rèn)識(shí)串口通信通過實(shí)際編程練習(xí),掌握Arduino串口通信的編程技巧。掌握Arduino串口通信編程解釋串口通信中常用的函數(shù)庫(kù)語句及其作用。理解串口通信函數(shù)庫(kù)語句學(xué)習(xí)目標(biāo)1.材料清單硬件知識(shí)名稱電子元件功能描述面包板

用于接線連接元器件電阻220Ω

紅色LED

LED發(fā)光模塊編程輸出控制亮度取值范圍為0~255??梢杂脭?shù)字端口控制燈的亮滅,也可以用模擬口控制它的亮度。輸入高電平燈亮,低電平則燈滅2.硬件材料介紹

在Ardiuno控制器上,串口都是位于0(RX)和1(TX)的兩個(gè)引腳,Ardiuno的USB口通過一個(gè)轉(zhuǎn)換芯片與這兩個(gè)串口引腳連接。

轉(zhuǎn)換芯片的作用是通過USB接口在所連接的計(jì)算機(jī)上虛擬出一個(gè)用于與Ardiuno通信的串口,從而實(shí)現(xiàn)計(jì)算機(jī)與Ardiuno之間建立串口連接,進(jìn)行數(shù)據(jù)互傳。

每臺(tái)設(shè)備的串口通常只能連接另外一臺(tái)設(shè)備的串口進(jìn)行通信,進(jìn)行通信的兩臺(tái)設(shè)備的串口對(duì)應(yīng)的發(fā)送端子(TX)和接收端子(RX)需要交叉相連,共用一個(gè)電源地,連接示意圖如圖10-1所示。硬件知識(shí)圖10-1兩臺(tái)設(shè)備串口連接示意圖

上傳程序的過程實(shí)際就是占用串口進(jìn)行通信的過程,因此通信不需另外接線,只需根據(jù)此前所學(xué),連接一盞LED燈即可,實(shí)訓(xùn)硬件連線圖如圖所示。3.硬件連線硬件知識(shí)021.知識(shí)要點(diǎn)圖形化編程2程序編寫圖形化編程在此前程序基礎(chǔ)上,結(jié)合前面章節(jié)內(nèi)容,修改程序,實(shí)現(xiàn)通過計(jì)算機(jī)發(fā)送字符控制實(shí)現(xiàn)花樣燈效果。3.程序拓展圖形化編程02代碼編程(1).串口初始化

要想使Ardiuno串口與計(jì)算機(jī)通信,需要先使用Serial.begin()函數(shù)初始化Ardiuno串口通信功能,即Serial.begin(speed)

串口通信波特率指設(shè)定串口通信速率的參數(shù),串口通信雙方必須使用同樣的波特率方能正常進(jìn)行通信。Ardiuno串口通信通常會(huì)使用以下波特率:300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200。例如之前實(shí)驗(yàn)在程序初始化時(shí),設(shè)speed為9600。

波特率的大小衡量通信速度,單位為bit/s,即每秒傳送的比特?cái)?shù)。例如9600波特表示每秒發(fā)送9600bit的數(shù)據(jù)。波特率越大,說明串口通信的速率越高。1.串口通信語句02代碼編程(2).串口輸出

在串口初始化完成后,便可以使用Serial.print()或Serial.println()函數(shù)向計(jì)算機(jī)或使用串口連接的其他設(shè)備發(fā)送信息了,函數(shù)用法如下:Serial.print(val);Serial.println(val);//參數(shù)val是要輸出的數(shù)據(jù),允許輸出各種數(shù)據(jù)類型Serial.println(val)語句也是使用串口輸出數(shù)據(jù),不同的是在其輸出完指定的val數(shù)據(jù)后,再輸出一組(/r/n)回車換行符。

串口監(jiān)視器是ArdiunoIDE自帶的一個(gè)小工具,可用來查看串口傳來的信息,也可向連接的設(shè)備發(fā)送信息。為了保證能夠正常的收/發(fā)數(shù)據(jù),要注意串口監(jiān)視器右下角的波特率設(shè)置,下拉菜單設(shè)置波特率與程序編寫初始化的波特率保持一致。1.串口通信語句02代碼編程(3).串口輸入

除了輸出,串口也可以接收由計(jì)算機(jī)或串口連接的設(shè)備所發(fā)出的數(shù)據(jù)。接收串口數(shù)據(jù)需要使用Serial.read()函數(shù),當(dāng)程序調(diào)用時(shí),每次都會(huì)向Ardiuno返回1字節(jié)數(shù)據(jù),該返回值便是當(dāng)前串口讀到的數(shù)據(jù)。

程序下載成功后,運(yùn)行串口監(jiān)視器,在上方“發(fā)送”按鈕左側(cè)的文本框中輸入要發(fā)送的信息,如“ardiuno”,則會(huì)看到在輸出了Ardiuno的同時(shí)還出現(xiàn)了亂碼。這些亂碼是由于在串口緩沖區(qū)中沒有可讀數(shù)據(jù)造成的。當(dāng)緩沖區(qū)中沒有可讀數(shù)據(jù)時(shí),Serial.read()函數(shù)會(huì)返回int型值-1,而int型值-1對(duì)應(yīng)的char型數(shù)據(jù)便是輸出的亂碼。

什么是串口緩沖區(qū)呢?在使用串口時(shí),Ardiuno會(huì)在SRAM中開辟一段大小為64B的空間,串口接收到的數(shù)據(jù)都會(huì)被暫時(shí)存放在該空間中,稱這個(gè)存儲(chǔ)空間為緩沖區(qū)。

通常在使用串口讀取數(shù)據(jù)時(shí),為了解決亂碼問題,需要搭配使用Serial.available()函數(shù),知道緩沖區(qū)的字節(jié)數(shù),可以搭配if或while語句來使用。1.串口通信語句02代碼編程(3).串口輸入1.串口通信語句程序下載完成后,打開串口監(jiān)視器,鍵入并發(fā)送任意信息,則會(huì)看到Ardiuno輸出了剛發(fā)送過去的信息,并且不再出現(xiàn)亂碼了,示例代碼如下:程序中使用Serial.read()語句接收數(shù)據(jù)并進(jìn)行判斷,當(dāng)接收到的數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論