ARM嵌入式開(kāi)發(fā)實(shí)例6-3_第1頁(yè)
ARM嵌入式開(kāi)發(fā)實(shí)例6-3_第2頁(yè)
ARM嵌入式開(kāi)發(fā)實(shí)例6-3_第3頁(yè)
ARM嵌入式開(kāi)發(fā)實(shí)例6-3_第4頁(yè)
ARM嵌入式開(kāi)發(fā)實(shí)例6-3_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1USART串口通信模塊〔UniversalSynchronous/AsynchronousReceiver/Transmitter〕是一個(gè)通用的同步/異步串行接收/發(fā)送器,即USART是一個(gè)全雙工通用同步/異步串行收發(fā)模塊,該通信接口是一個(gè)高度靈活的串行通信設(shè)備。USART串口通信模塊一般分為三大局部:時(shí)鐘發(fā)生器、數(shù)據(jù)發(fā)送器和接收器。其中,控制存放器為所有的模塊共享。第6章STM32F103XX功能模塊〔2〕6.3USART串口通信模塊

在圖中,顯示了一個(gè)帶有USART接口的功能模塊。

6.3USART串口通信模塊RS-232C:是美國(guó)電子工業(yè)協(xié)會(huì)(EIA)制定的串行通訊標(biāo)準(zhǔn),是一個(gè)全雙工的通訊標(biāo)準(zhǔn),它可以同時(shí)進(jìn)行數(shù)據(jù)接收和發(fā)送的工作。其9針接插件〔DB9〕,其引腳定義如下:6.3USART串口通信模塊

通用串行數(shù)據(jù)傳輸接口簡(jiǎn)單連接完全連接簡(jiǎn)單連接:短距離數(shù)據(jù)傳輸,只連接發(fā)送數(shù)據(jù)線(xiàn),接收數(shù)據(jù)線(xiàn)、信號(hào)地,又稱(chēng)“三線(xiàn)連接”完全連接:長(zhǎng)距離距離數(shù)據(jù)傳輸,如串口之間通過(guò)Modem連接進(jìn)行數(shù)據(jù)傳輸。RS-232C接口的根本連接方式6.3USART串口通信模塊在極限條件下,用戶(hù)可以?xún)H用2根信號(hào)線(xiàn)就可以實(shí)現(xiàn)USART串口通信的根本功能,即RX接收引腳和TX發(fā)送引腳。由于兩個(gè)處理器的收發(fā)引腳在連接的過(guò)程中是相互交叉的,因此USART串口通信線(xiàn)也經(jīng)常被稱(chēng)為交叉信號(hào)線(xiàn)。6.3USART串口通信模塊6.3.1USART的功能特性接口通過(guò)三個(gè)引腳與其他設(shè)備連接在一起。任何USART雙向通信至少需要兩個(gè)腳:接收數(shù)據(jù)輸入(RX)和發(fā)送數(shù)據(jù)輸出(TX)。RX:接收數(shù)據(jù)串行輸。通過(guò)過(guò)采樣技術(shù)來(lái)區(qū)別數(shù)據(jù)和噪音,從而恢復(fù)數(shù)據(jù)。TX:發(fā)送數(shù)據(jù)輸出。當(dāng)發(fā)送器被禁止時(shí),輸出引腳恢復(fù)到它的I/O端口配置。當(dāng)發(fā)送器被激活,并且不發(fā)送數(shù)據(jù)時(shí),TX引腳處于高電平。6.3USART串口通信模塊USART主要由數(shù)據(jù)線(xiàn)接口、控制邏輯、配置存放器、波特率發(fā)生器、發(fā)送局部和接收局部組成。6.3.1USART的功能特性6.3USART串口通信模塊6.3.2USART的字符描述6.3USART串口通信模塊USART的主要功能是將數(shù)據(jù)以字符為單位,按照先低位后高位的順序進(jìn)行逐位傳輸。根據(jù)發(fā)送方和接收方是否使用同一個(gè)時(shí)鐘,通訊方式分成同步和異步兩種。UART以字符為單位進(jìn)行數(shù)據(jù)傳輸,每個(gè)字符的傳輸格式如下:6.3.2USART的字符描述可以通過(guò)設(shè)置USART_CR1存放器中的M標(biāo)志位來(lái)選擇是8bit還是9bit。在USART串口數(shù)據(jù)通信的過(guò)程中,TX引腳在起始位期間一直保持低電平,而在停止位期間那么保持高電平。在數(shù)據(jù)幀中,空閑符被認(rèn)為是一個(gè)全“1”的幀,緊跟著包含數(shù)據(jù)的下一個(gè)幀的起始位。而間隙符被認(rèn)為是一個(gè)幀周期都接收到“0”。在間隙幀之后,發(fā)送器會(huì)自動(dòng)插入1個(gè)或者2個(gè)停止位,即邏輯“1”,用于應(yīng)答起始位。需要說(shuō)明的是:發(fā)送和接收數(shù)據(jù)都是通過(guò)波特率產(chǎn)生器驅(qū)動(dòng)。當(dāng)發(fā)送者和接收者的使能位被分別設(shè)置為1的時(shí)候,那么會(huì)為彼此分別產(chǎn)生驅(qū)動(dòng)時(shí)鐘。6.3USART串口通信模塊6.3.3USART的發(fā)送器USART發(fā)送器可以發(fā)送8位或者9位的數(shù)據(jù)字,這主要取決于M標(biāo)志位的狀態(tài)。當(dāng)發(fā)送使能位TE被設(shè)置為1的時(shí)候,發(fā)送移位存放器中的數(shù)據(jù)在TX引腳輸出,相關(guān)的時(shí)鐘脈沖在SCLK引腳輸出。1、字符發(fā)送:在USART發(fā)送數(shù)據(jù)的過(guò)程中,TX引腳先出現(xiàn)最低有效位。在這種模式下,USART_DR存放器包含了一個(gè)內(nèi)部總線(xiàn)和發(fā)送移位存放器之間的緩沖區(qū),即TDR。在字符發(fā)送過(guò)程中,每個(gè)字符之前都有一位邏輯低電平的起始位,用來(lái)設(shè)置字符數(shù)目的停止位階數(shù)。2、可配置的停止位:在USART串口通信的過(guò)程中,每個(gè)字符所帶的停止位的數(shù)據(jù)可以通過(guò)控制存放器2中的第12位和第13位進(jìn)行配置6.3USART串口通信模塊3、單字節(jié)通信:在USART通信過(guò)程中,去除TXE標(biāo)志位一般都是通過(guò)向數(shù)據(jù)存放器中寫(xiě)入數(shù)據(jù)完成中。通常情況下,TXE標(biāo)志位是有系統(tǒng)硬件所設(shè)置的4、間隔字符:在USART通信過(guò)程中,可以通過(guò)設(shè)置SBK標(biāo)志位來(lái)發(fā)送一個(gè)間隙字符。間隙幀的長(zhǎng)度與標(biāo)志位M有關(guān)。6.3USART串口通信模塊6.3.4USART的接收器

USART通信接口中的接收器可以接收8位或者9位的數(shù)據(jù)字。同樣,數(shù)據(jù)字的長(zhǎng)度取決于USART_CR1存放器中的M標(biāo)志位。1、字符接收:在USART數(shù)據(jù)通信接收器件,RX引腳最先接收到最低有效位。在這種模式下,USART_DR存放器由一個(gè)內(nèi)部總線(xiàn)和接收位移存放器之間的緩沖區(qū)RDR構(gòu)成。2、溢出錯(cuò)誤:當(dāng)USART通信接口接收到一個(gè)字符的時(shí)候,而RXNE標(biāo)志位還沒(méi)有被復(fù)位,在這種情況下系統(tǒng)將出現(xiàn)溢出的錯(cuò)誤。換句話(huà)而言,在RXNE標(biāo)志位被去除之前數(shù)據(jù)部能從移位存放器轉(zhuǎn)移到RDR存放器。3、噪音錯(cuò)誤:在ARM處理器中,可以通過(guò)“過(guò)采樣”技術(shù)可以是被有效輸入數(shù)據(jù)和噪音,從而實(shí)現(xiàn)數(shù)據(jù)恢復(fù)〔不可以在同步模式下使用〕6.3USART串口通信模塊4、數(shù)據(jù)幀錯(cuò)誤:在USART串口通信的過(guò)程中,由于沒(méi)有同步成功或者外部環(huán)境存在大量噪聲干擾等原因,停止位沒(méi)有在預(yù)期的時(shí)間段內(nèi)被接收和識(shí)別出來(lái),那么意味著發(fā)生了數(shù)據(jù)幀錯(cuò)誤。5、接收器件配置停止位:用戶(hù)可以通過(guò)控制存放器2中的控制位對(duì)數(shù)據(jù)接收過(guò)程中停止位的數(shù)目進(jìn)行配置。在普通模式下停止位的數(shù)據(jù)可以是1位或者2位。智能卡模式下可以是0.5位或者1.5位。6.3USART串口通信模塊波特率發(fā)生波特率時(shí)鐘通過(guò)把源時(shí)鐘除以16再除以一個(gè)16位的因子得到,該16位的因子可以在UART波特率因子存放器〔UBRDIVn〕中指定。UBRDIVn=〔int〕〔PCLK/〔bps×16〕〕-1UBRDIVn=〔int〕〔UEXTCLK/〔bps×16〕〕-1舉例:時(shí)鐘是40Mhz時(shí),要想設(shè)置串口波特率為115200,波特率因子數(shù)值應(yīng)為多少?UBRDIVn=〔int〕〔40000000/〔115200×16〕〕-1=〔int〕〔21.7〕-1=206.3USART串口通信模塊6.3.5USART的中斷請(qǐng)求

6.3USART串口通信模塊中斷事件NE標(biāo)志位狀態(tài)接收到的位值發(fā)送數(shù)據(jù)寄存器為空TXETEXIECTS標(biāo)志位CTSCTSIE數(shù)據(jù)發(fā)送完成TCTCIE接收到的數(shù)據(jù)可讀TXNERXNEIE檢測(cè)到溢出錯(cuò)誤OREN/A檢測(cè)到空閑線(xiàn)路IDLEIELEIE奇偶校驗(yàn)錯(cuò)誤PEPEIE間隙標(biāo)志LBDLBDIE多緩沖通信下噪聲標(biāo)志,溢出標(biāo)志和數(shù)據(jù)幀錯(cuò)誤NE、OR或者FEEIE6.3.6USART的存放器6.3USART串口通信模塊寄存器名稱(chēng)寄存器描述SRUSART狀態(tài)寄存器DRUSART數(shù)據(jù)寄存器BRRUSART波特率寄存器CR1USART控制寄存器1CR2USART控制寄存器2CR3USART控制寄存器3GTPRUSART保護(hù)時(shí)間和預(yù)分頻寄存器6.3.7USART的庫(kù)函數(shù)(教材329-342)6.3USART串口通信模塊函數(shù)名稱(chēng)功能描述USART_DeInit將外設(shè)USARTx寄存器重設(shè)為缺省值USART_Init根據(jù)USART_InitStruct中指定的參數(shù)初始化外設(shè)USARTx寄存器USART_StructInit將USART_InitStruct中的每一個(gè)參數(shù)都按缺省值填入U(xiǎn)SART_Cmd使能或者失能USART外設(shè)USART_ITConfig使能或者失能指定的USART中斷USART_DMACmd使能或者失能指定的USART的DMA請(qǐng)求USART_SetAddress設(shè)置USART節(jié)點(diǎn)的地址USART_WakeUpConfig選擇USART的喚醒方式USART_ReceiverWakeUpCmd檢查USART是否處于靜默模式USART_LINBreakDetectLengthConfig設(shè)置USARTLIN中斷檢測(cè)長(zhǎng)度USART_LINCmd使能或者失能USARTx的LIN模式6.3USART串口通信模塊USART_SendData通過(guò)外設(shè)USARTx發(fā)送單個(gè)數(shù)據(jù)USART_ReceiveData返回USARTx最近接收到的數(shù)據(jù)USART_SendBreak發(fā)送中斷字USART_SetGuardTime設(shè)置指定的USART保護(hù)時(shí)間USART_SetPrescaler設(shè)置USART時(shí)鐘預(yù)分頻USART_SmartCardCmd使能或者失能指定的USART的智能卡模式USART_SmartCardNackCmd使能或者失能NACK傳輸U(kuò)SART_HalfDuplexCmd使能或者失能USART半雙工模式USART_IrDAConfig設(shè)置USARTIrDA模式USART_IrDACmd使能或者失能USARTIrDA模式USART_GetFlagStatus檢查指定的USART標(biāo)志位是否設(shè)置USART_ClearFlag清楚USARTx的待處理標(biāo)志位USART_GetITStatus檢查指定的USART中斷是否發(fā)生USART_ClearITPendingBit清除USARTx的中斷待處理器6.3.8根底實(shí)驗(yàn)三:汽車(chē)輪速檢測(cè)實(shí)驗(yàn)

現(xiàn)代汽車(chē)的ABS系統(tǒng)中都設(shè)置有電磁感應(yīng)式的輪速傳感器,它可以安裝在主減速器或變速器中,輪速傳感器的組成和工作原理如下圖。6.3USART串口通信模塊1、實(shí)驗(yàn)內(nèi)容分析:在本實(shí)驗(yàn)中,使用PC〔個(gè)人計(jì)算機(jī)〕作為上位機(jī)來(lái)接收汽車(chē)輪速檢測(cè)系統(tǒng)通過(guò)USART串

溫馨提示

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

評(píng)論

0/150

提交評(píng)論