日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]串口記錄: STM32有好幾個(gè)串口。比如說STM32F103ZET6有5個(gè)串口,串口1的引腳對(duì)應(yīng)的IO為PA9,PA10.PA9,PA10默認(rèn)功能是GPIO,所以當(dāng)PA9,PA10引腳作為串口1的TX,RX引腳使用的時(shí)候,那就是端口復(fù)用。 復(fù)用端口初始化有幾

串口記錄:

STM32有好幾個(gè)串口。比如說STM32F103ZET6有5個(gè)串口,串口1的引腳對(duì)應(yīng)的IO為PA9,PA10.PA9,PA10默認(rèn)功能是GPIO,所以當(dāng)PA9,PA10引腳作為串口1的TX,RX引腳使用的時(shí)候,那就是端口復(fù)用。

復(fù)用端口初始化有幾個(gè)步驟:
1) GPIO端口時(shí)鐘使能。要使用到端口復(fù)用,當(dāng)然要使能端口的時(shí)鐘了。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
2) 復(fù)用的外設(shè)時(shí)鐘使能。比如你要將端口PA9,PA10復(fù)用為串口,所以要使能串口時(shí)鐘。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
3) 端口模式配置。 在IO復(fù)用位內(nèi)置外設(shè)功能引腳的時(shí)候,必須設(shè)置GPIO端口的模式,至于在復(fù)用功能下GPIO的模式是怎么對(duì)應(yīng)的,這個(gè)可以查看手冊(cè)。

所以,我們?cè)谑褂脧?fù)用功能的是時(shí)候,最少要使能2個(gè)時(shí)鐘:
1) GPIO時(shí)鐘使能 ;2) 復(fù)用的外設(shè)時(shí)鐘使能 同時(shí)要初始化GPIO以及復(fù)用外設(shè)功能

串口設(shè)置的一般步驟可以總結(jié)為如下幾個(gè)步驟:
1) 串口時(shí)鐘使能,GPIO時(shí)鐘使能
2) 串口復(fù)位
3) GPIO端口模式設(shè)置
4) 串口參數(shù)初始化
5) 開啟中斷并且初始化NVIC(如果需要開啟中斷才需要這個(gè)步驟)
6) 使能串口
7) 編寫中斷處理函數(shù)

端口重映射:(暫略)

中斷量控制:

STM32有84個(gè)中斷,包括16個(gè)內(nèi)核中斷和68個(gè)可屏蔽中斷,具有16級(jí)可編程的中斷優(yōu)先級(jí)。而我們常用的就是這68個(gè)可屏蔽中斷,但是STM32的68個(gè)可屏蔽中斷,在STM32F103系列上面,又只有60個(gè)(在107系列才有68個(gè))。

ISER[2]:ISER全稱是:Interrupt Set-Enable Registers,這是一個(gè)中斷使能寄存器組。

ICER[2]:全稱是:Interrupt Clear-Enable Registers,是一個(gè)中斷除能寄存器組。

ISPR[2]:全稱是:Interrupt Set-Pending Registers,是一個(gè)中斷掛起控制寄存器組。

ICPR[2]:全稱是:Interrupt Clear-Pending Registers,是一個(gè)中斷解掛控制寄存器組。

IABR[2]:全稱是:Active Bit Registers,是一個(gè)中斷激活標(biāo)志位寄存器組。

IPR[15]:全稱是:Interrupt Priority Registers,是一個(gè)中斷優(yōu)先級(jí)控制的寄存器組。

簡(jiǎn)單介紹一下STM32的中斷分組:STM32將中斷分為5個(gè)組,組0~4。該分組的設(shè)置是由SCB->AIRCR寄存器的bit10~8來定義的。

通過這個(gè)表,我們就可以清楚的看到組0~4對(duì)應(yīng)的配置關(guān)系,例如組設(shè)置為3,那么此時(shí)所有的60個(gè)中斷,每個(gè)中斷的中斷優(yōu)先寄存器的高四位中的最高3位是搶占優(yōu)先級(jí),低1位是響應(yīng)優(yōu)先級(jí)。每個(gè)中斷,你可以設(shè)置搶占優(yōu)先級(jí)為0~7,響應(yīng)優(yōu)先級(jí)為1或0。搶占優(yōu)先級(jí)的級(jí)別高于響應(yīng)優(yōu)先級(jí)。而數(shù)值越小所代表的優(yōu)先級(jí)就越高。

  STM32的中斷如此之多,配置起來并不容易,因此,我們需要一個(gè)強(qiáng)大而方便的中斷控制器NVIC (Nested Vectored Interrupt Controller)。NVIC是屬于
Cortex內(nèi)核的器件,不可屏蔽中斷 (NMI)和外部中斷都由它來處理,而SYSTICK不是由NVIC來控制的。

使用NVIC來配置中斷時(shí),自然想到ST庫肯定也已經(jīng)把它封裝成庫函數(shù)了。對(duì)NVIC初始化NVIC_Init() 函數(shù),首先要定義并填充一個(gè)NVIC_InitTypeDef 類型的結(jié)構(gòu)體。

這個(gè)結(jié)構(gòu)體有四個(gè)成員:
      NVIC_IRQChannel 需要配置的中斷向量;
      NVIC_IRQChannelCmd 使能或關(guān)閉相應(yīng)中斷向量的中斷響應(yīng);
      NVIC_IRQChannelPreemptionPriority 配置相應(yīng)中斷向量搶占優(yōu)先級(jí);
      NVIC_IRQChannelSubPriority 配置相應(yīng)中斷向量的響應(yīng)優(yōu)先級(jí);

首先要用NVIC_IRQChannel參數(shù)來選擇將要配置的中斷向量,用NVIC_IRQChannelCmd參數(shù)來進(jìn)行使能(ENABLE)或關(guān)閉(DISABLE)該中斷。在NVIC_IRQChannelPreemptionPriority成員要配置中斷向量的搶占優(yōu)先級(jí),在NVIC_IRQChannelSubPriority需要配置中斷向量的響應(yīng)優(yōu)先級(jí)。

搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)
STM32的中斷向量具有兩個(gè)屬性,一個(gè)為搶占屬性,另一個(gè)為響應(yīng)屬性,其屬性編號(hào)越小,表明它的優(yōu)先級(jí)別越高。

搶占,是指打斷其它中斷的屬性,即因?yàn)榫哂羞@個(gè)屬性,會(huì)出現(xiàn)嵌套中斷(在執(zhí)行中斷服務(wù)函數(shù)A的過程中被中斷B打斷,執(zhí)行完中斷服務(wù)函數(shù)B再繼續(xù)執(zhí)行中斷服務(wù)函數(shù)A),搶占屬性由NVIC_IRQChannelPreemptionPriority的參數(shù)配置。
而響應(yīng)屬性則應(yīng)用在搶占屬性相同的情況下,當(dāng)兩個(gè)中斷向量的搶占優(yōu)先級(jí)相同時(shí),如果兩個(gè)中斷同時(shí)到達(dá),則先處理響應(yīng)優(yōu)先級(jí)高的中斷,響應(yīng)屬性由NVIC_IRQChannelSubPriority的參數(shù)配置。

例如:現(xiàn)在有三個(gè)中斷向量:
中斷向量 搶占優(yōu)先級(jí) 響應(yīng)優(yōu)先級(jí)
  A    0     0
  B   1      0
  C   1 1

若內(nèi)核正在執(zhí)行C的中斷服務(wù)函數(shù),則它能被搶占優(yōu)先級(jí)更高的中斷A打斷,由于B和C的搶占優(yōu)先級(jí)相同,所以C不能被B打斷。但如果B和C中斷是同時(shí)到達(dá)的,內(nèi)核就會(huì)首先響應(yīng)響應(yīng)優(yōu)先級(jí)別更高的B中斷。

NVIC只可以配置16種 中斷向量的優(yōu)先級(jí),也就是說,搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)的數(shù)量由一個(gè)4位的數(shù)字來決定,把這個(gè)4位數(shù)字的位數(shù) 分配成搶占優(yōu)先級(jí)部分和響應(yīng)優(yōu)先級(jí)部分。有5組分配方式。

要配置這些優(yōu)先級(jí)組,可以采用庫函數(shù)NVIC_PriorityGroupConfig(),可輸入的參數(shù)為NVIC_PriorityGroup_0 ~ NVIC_PriorityGroup_4,分別為以上介
紹的5種分配組。

中斷優(yōu)先級(jí)設(shè)置的步驟:
1. 系統(tǒng)運(yùn)行開始的時(shí)候設(shè)置中斷分組。確定組號(hào),也就是確定搶占優(yōu)先級(jí)和子優(yōu)先級(jí)的分配位數(shù)。調(diào)用函數(shù)為NVIC_PriorityGroupConfig();
2. 設(shè)置所用到的中斷的中斷優(yōu)先級(jí)別。對(duì)每個(gè)中斷調(diào)用函數(shù)為NVIC_Init();


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式開發(fā)中,STM32的時(shí)鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點(diǎn)。然而,看似簡(jiǎn)單的時(shí)鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時(shí)鐘源選擇、PLL配置、總線時(shí)鐘分配等關(guān)鍵環(huán)...

關(guān)鍵字: STM32 時(shí)鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應(yīng)用于設(shè)備自檢、環(huán)境監(jiān)測(cè)等場(chǎng)景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準(zhǔn)算法、軟...

關(guān)鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅(qū)動(dòng)下,AC-DC轉(zhuǎn)換器的數(shù)字控制技術(shù)正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構(gòu)的深刻變革。基于STM32微控制器的PFM(脈沖頻率調(diào)制)+PWM(脈沖寬度調(diào)制)混合調(diào)制策略,結(jié)合動(dòng)態(tài)電壓調(diào)整(Dynam...

關(guān)鍵字: AC-DC STM32

當(dāng)前智能家居產(chǎn)品需求不斷增長(zhǎng) ,在這一背景下 ,對(duì)現(xiàn)有澆花裝置缺陷進(jìn)行了改進(jìn) ,設(shè)計(jì)出基于STM32單片機(jī)的全 自動(dòng)家用澆花機(jī)器人。該設(shè)計(jì)主要由機(jī)械結(jié)構(gòu)和控制系統(tǒng)構(gòu)成 ,機(jī)械結(jié)構(gòu)通過麥克納姆輪底盤與噴灑裝置的結(jié)合實(shí)現(xiàn)機(jī)器...

關(guān)鍵字: STM32 麥克納姆輪 安全可靠 通過性強(qiáng)

用c++編程似乎是讓你的Arduino項(xiàng)目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個(gè)圖形化編程平臺(tái)將復(fù)雜電子項(xiàng)目的創(chuàng)建變成了拖動(dòng)和連接塊的簡(jiǎn)單任務(wù)。在本文中,我們將帶您完成使...

關(guān)鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術(shù)的無線傳感網(wǎng)絡(luò)憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測(cè)、工業(yè)自動(dòng)化等場(chǎng)景的核心解決方案。然而,如何在復(fù)雜電磁環(huán)境中實(shí)現(xiàn)高效休眠調(diào)度與動(dòng)態(tài)信道優(yōu)化,成為提升網(wǎng)絡(luò)能效與可靠性的關(guān)鍵挑戰(zhàn)。本...

關(guān)鍵字: STM32 LoRa

在實(shí)時(shí)控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對(duì)時(shí)間敏感的應(yīng)用場(chǎng)景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

數(shù)字電源技術(shù)向高功率密度、高效率與高動(dòng)態(tài)響應(yīng)方向加速演進(jìn),STM32微控制器憑借其基于DSP庫的算法加速能力與對(duì)LLC諧振變換器的精準(zhǔn)控制架構(gòu),成為優(yōu)化電源動(dòng)態(tài)性能的核心平臺(tái)。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關(guān)鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對(duì)電機(jī)控制場(chǎng)景的深度優(yōu)化,成為高精度、高可靠性驅(qū)動(dòng)系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機(jī)控制領(lǐng)域的核心優(yōu)勢(shì)集中體現(xiàn)在FOC(磁場(chǎng)定向控制)算法的硬件加速引擎與PWM死區(qū)時(shí)間的動(dòng)態(tài)補(bǔ)...

關(guān)鍵字: STM32 電機(jī)控制

無線充電技術(shù)加速滲透消費(fèi)電子與汽車電子領(lǐng)域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設(shè)備能量補(bǔ)給的核心課題。傳統(tǒng)模擬控制方案存在響應(yīng)滯后、參數(shù)調(diào)整困難等問題,而基于STM32的數(shù)字PID控制結(jié)合FOD(Foreign O...

關(guān)鍵字: STM32 無線充電
關(guān)閉