單元四串口打印中斷接收湯宇嬌上海城建職業(yè)課件_第1頁(yè)
單元四串口打印中斷接收湯宇嬌上海城建職業(yè)課件_第2頁(yè)
單元四串口打印中斷接收湯宇嬌上海城建職業(yè)課件_第3頁(yè)
單元四串口打印中斷接收湯宇嬌上海城建職業(yè)課件_第4頁(yè)
單元四串口打印中斷接收湯宇嬌上海城建職業(yè)課件_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

單元四串口打印—中斷接收主講人:湯宇嬌上海城建職業(yè)學(xué)院本單元內(nèi)容中斷基本概述USART中斷庫(kù)函數(shù)說(shuō)明中斷方式的串口通信教學(xué)目標(biāo)了解中斷的基本概念了解HAL庫(kù)的中斷設(shè)計(jì)思想熟練掌握中斷方式串口通信的編程方法4.1中斷基本概述基本概念UART中斷的概念A(yù)RMCoetex-M3內(nèi)核共支持256個(gè)中斷,其中16個(gè)內(nèi)部中斷,240個(gè)外部中斷和可編程的256級(jí)中斷優(yōu)先級(jí)的設(shè)置。STM32目前支持的中斷共84個(gè)(16個(gè)內(nèi)部+68個(gè)外部),還有16級(jí)可編程的中斷優(yōu)先級(jí)的設(shè)置,僅使用中斷優(yōu)先級(jí)設(shè)置8bit中的高4位。中斷簡(jiǎn)介基本概念UART中斷的概念STM32可支持68個(gè)中斷通道,已經(jīng)固定分配給相應(yīng)的外部設(shè)備,每個(gè)中斷通道都具備自己的中斷優(yōu)先級(jí)控制字節(jié)(8位,但是STM32中只使用4位,高4位有效),每4個(gè)通道的8位中斷優(yōu)先級(jí)控制字構(gòu)成一個(gè)32位的優(yōu)先級(jí)寄存器。68個(gè)通道的優(yōu)先級(jí)控制字節(jié)至少構(gòu)成17個(gè)32位的優(yōu)先級(jí)寄存器。中斷簡(jiǎn)介基本概念UART中斷的概念4bit的中斷優(yōu)先級(jí)可以分成2組,從高位看,前面定義的是搶占式優(yōu)先級(jí),后面是響應(yīng)優(yōu)先級(jí)。按照這種分組,4bit一共可以分成5組:第0組:所有4bit用于指定響應(yīng)優(yōu)先級(jí);第1組:最高1位用于指定搶占式優(yōu)先級(jí),后面3位用于指定響應(yīng)優(yōu)先級(jí);第2組:最高2位用于指定搶占式優(yōu)先級(jí),后面2位用于指定響應(yīng)優(yōu)先級(jí);第3組:最高3位用于指定搶占式優(yōu)先級(jí),后面1位用于指定響應(yīng)優(yōu)先級(jí);第4組:所有4位用于指定搶占式優(yōu)先級(jí)。搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)基本概念UART中斷的概念所謂搶占式優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí),他們之間的關(guān)系是:具有高搶占式優(yōu)先級(jí)的中斷可以在具有低搶占式優(yōu)先級(jí)的中斷處理過(guò)程中被響應(yīng),即中斷嵌套。當(dāng)兩個(gè)中斷源的搶占式優(yōu)先級(jí)相同時(shí),這兩個(gè)中斷將沒(méi)有嵌套關(guān)系,當(dāng)一個(gè)中斷到來(lái)后,如果正在處理另一個(gè)中斷,這個(gè)后到來(lái)的中斷就要等到前一個(gè)中斷處理完之后才能被處理。如果這兩個(gè)中斷同時(shí)到達(dá),則中斷控制器根據(jù)他們的響應(yīng)優(yōu)先級(jí)高低來(lái)決定先處理哪一個(gè);如果他們的搶占式優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)都相等,則根據(jù)他們?cè)谥袛啾碇械呐盼豁樞驔Q定先處理哪一個(gè)。每一個(gè)中斷源都必須定義2個(gè)優(yōu)先級(jí)。搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)基本概念UART中斷的概念有幾點(diǎn)需要注意的是:如果指定的搶占式優(yōu)先級(jí)別或響應(yīng)優(yōu)先級(jí)別超出了選定的優(yōu)先級(jí)分組所限定的范圍,將可能得到意想不到的結(jié)果;搶占式優(yōu)先級(jí)別相同的中斷源之間沒(méi)有嵌套關(guān)系;如果某個(gè)中斷源被指定為某個(gè)搶占式優(yōu)先級(jí)別,又沒(méi)有其它中斷源處于同一個(gè)搶占式優(yōu)先級(jí)別,則可以為這個(gè)中斷源指定任意有效的響應(yīng)優(yōu)先級(jí)別。搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)基本概念UARTUSART中斷向量表優(yōu)先級(jí)優(yōu)先級(jí)類(lèi)型名稱(chēng)說(shuō)明地址44可設(shè)置USART1USART1全局中斷0x0000_00D445可設(shè)置USART2USART2全局中斷0x0000_00D846可設(shè)置USART3USART3全局中斷0x0000_00DC基本概念UART中斷控制器中斷控制器NVIC(NestedVectoredInterruptController),NVIC是屬于Cortex內(nèi)核的器件,不可屏蔽中斷和外部中斷都是由它處理,而SYTICK不是由它處理。NVIC中斷控制器3.2USART中斷庫(kù)函數(shù)配置中斷配置NVIC嵌套向量中斷控制器NVIC_InitTypeDefstructureNVIC_InitTypeDef定義于文件“stm32f10x_nvic.h”:typedefstruct{u8 NVIC_IRQChannel;u8 NVIC_IRQChannelPreemptionPriority;u8 NVIC_IRQChannelSubPriority;FunctionalStateNVIC_IRQChannelCmd;}NVIC_InitTypeDef;接口函數(shù):NVIC_Init

函數(shù)原型voidNVIC_Init(NVIC_InitTypeDef*NVIC_InitStruct)功能描述根據(jù)NVIC_InitStruct中指定的參數(shù)初始化外設(shè)NVIC寄存器入口參數(shù)NVIC_InitStruct:指向結(jié)構(gòu)NVIC_InitTypeDef的指針,包含了外設(shè)GPIO的配置信息返回值無(wú)NVIC驅(qū)動(dòng)有多種用途:例如使能或者失能IRQ中斷,使能或者失能單獨(dú)的IRQ通道,改變IRQ通道的優(yōu)先級(jí)等等。中斷配置NVIC串口中斷通用處理函數(shù)接口函數(shù):USART_ITConfig 函數(shù)原型voidUSART_ITConfig(USART_TypeDef*USARTx,u16USART_IT,FunctionalStateNewState)功能描述使能或者失能指定的USART中斷入口參數(shù)1USARTx:x可以是1,2或者3,來(lái)選擇USART外設(shè)入口參數(shù)2USART_IT:待使能或者失能的USART中斷源入口參數(shù)3NewState:USARTx中斷的新?tīng)顟B(tài)這個(gè)參數(shù)可以取:ENABLE或者DISABLE返回值無(wú)中斷配置NVIC串口中斷通用處理函數(shù)接口函數(shù):USART1_IRQHandler

函數(shù)原型voidUSART1_IRQHandler(void)功能描述USART1中斷服務(wù)程序入口參數(shù)無(wú)返回值無(wú)中斷配置NVIC串口中斷通用處理函數(shù)接口函數(shù):USART_GetITStatus

函數(shù)原型ITStatusUSART_GetITStatus(USART_TypeDef*USARTx,u16USART_IT)功能描述檢查指定的USART中斷發(fā)生與否入口參數(shù)1USARTx:x可以是1,2或者3,來(lái)選擇USART外設(shè)入口參數(shù)2USART_IT:待檢查的USART中斷源返回值USART_IT的新?tīng)顟B(tài)中斷配置NVIC串口中斷通用處理函數(shù)接口函數(shù):USART_ClearFlag 函數(shù)原型voidUSART_ClearFlag(USART_TypeDef*USARTx,u16USART_FLAG)功能描述清除USARTx的待處理標(biāo)志位入口參數(shù)1USARTx:x可以是1,2或者3,來(lái)選擇USART外設(shè)入口參數(shù)2USART_FLAG:待清除的USART標(biāo)志位返回值無(wú)3.3中斷方式的串口通信串口中斷方式UART串口中斷方式的特點(diǎn)發(fā)送數(shù)據(jù)時(shí),將一字節(jié)數(shù)據(jù)放入數(shù)據(jù)寄存器DR;接收數(shù)據(jù)時(shí),將DR的內(nèi)容存放到用戶(hù)存儲(chǔ)區(qū);中斷方式不必等待數(shù)據(jù)的傳輸過(guò)程,只需要在每字節(jié)數(shù)據(jù)收發(fā)完成后,由中斷標(biāo)志位觸發(fā)中斷,在中斷服務(wù)程序中放入新的一字節(jié)數(shù)據(jù)或者讀取接收到的一字節(jié)數(shù)據(jù);在傳輸數(shù)據(jù)量較大,且通信波特率較高(大于38400)時(shí),如果采用中斷方式,每收發(fā)一個(gè)字節(jié)的數(shù)據(jù),CPU都會(huì)被打斷,造成CPU無(wú)法處理其他事務(wù)。因此在批量數(shù)據(jù)傳輸,通信波特率較高時(shí),建議采用DMA方式。串口初始化UART串口中斷程序初始化開(kāi)啟時(shí)鐘GPIO端口配置GPIO初始化USART配置USART中斷配置和使能USART使能NVIC優(yōu)先級(jí)分組設(shè)置NVIC完成USART配置和使能USART_ITConfig(USART2,USART_IT_RX

溫馨提示

  • 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)論