STM32有好幾個(gè)串口。比如說(shuō)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來(lái)定義的。
通過(guò)這個(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的中斷如此之多,配置起來(lái)并不容易,因此,我們需要一個(gè)強(qiáng)大而方便的中斷控制器NVIC (Nested Vectored Interrupt Controller)。NVIC是屬于Cortex內(nèi)核的器件,不可屏蔽中斷 (NMI)和外部中斷都由它來(lái)處理,而SYSTICK不是由NVIC來(lái)控制的。
使用NVIC來(lái)配置中斷時(shí),自然想到ST庫(kù)肯定也已經(jīng)把它封裝成庫(kù)函數(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ù)來(lái)選擇將要配置的中斷向量,用NVIC_IRQChannelCmd參數(shù)來(lái)進(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的過(guò)程中被中斷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í),也就是說(shuō),搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)的數(shù)量由一個(gè)4位的數(shù)字來(lái)決定,把這個(gè)4位數(shù)字的位數(shù) 分配成搶占優(yōu)先級(jí)部分和響應(yīng)優(yōu)先級(jí)部分。有5組分配方式。
要配置這些優(yōu)先級(jí)組,可以采用庫(kù)函數(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();
上一篇:如何用stm32使用LWIP網(wǎng)絡(luò)協(xié)議棧實(shí)現(xiàn)DHCP客戶端
下一篇:基于STM32單片機(jī)對(duì)HCSR04超聲波的控制
推薦閱讀
史海拾趣
隨著公司規(guī)模的擴(kuò)大和市場(chǎng)份額的提升,AZ Displays開始實(shí)施全球化戰(zhàn)略。公司在全球范圍內(nèi)建立銷售網(wǎng)絡(luò)和分支機(jī)構(gòu),積極開拓國(guó)際市場(chǎng)。通過(guò)與國(guó)際知名企業(yè)的合作,AZ Displays成功將產(chǎn)品打入國(guó)際市場(chǎng),進(jìn)一步提升了公司的品牌影響力和市場(chǎng)競(jìng)爭(zhēng)力。
ECT一直致力于技術(shù)創(chuàng)新和研發(fā),不斷推出具有競(jìng)爭(zhēng)力的新產(chǎn)品。多年來(lái),ECT成功擁有了100多項(xiàng)專利,這些專利不僅涵蓋了電子測(cè)試系統(tǒng)的各個(gè)方面,也體現(xiàn)了公司在技術(shù)上的領(lǐng)先地位。通過(guò)不斷的技術(shù)創(chuàng)新,ECT贏得了眾多世界知名電子公司及其代工廠的長(zhǎng)期合作伙伴關(guān)系,進(jìn)一步鞏固了其在行業(yè)中的主導(dǎo)地位。
在XX世紀(jì)XX年代,DYMO公司推出了一款具有劃時(shí)代意義的標(biāo)簽打印機(jī)。這款打印機(jī)采用了全新的打印技術(shù),能夠打印出清晰、耐用的標(biāo)簽,并且支持多種字體和圖案。這一創(chuàng)新技術(shù)讓DYMO公司在標(biāo)簽打印領(lǐng)域取得了領(lǐng)先地位,并為其后續(xù)的產(chǎn)品線奠定了堅(jiān)實(shí)的基礎(chǔ)。
隨著電子行業(yè)的競(jìng)爭(zhēng)加劇,Comair Rotron意識(shí)到單打獨(dú)斗已難以滿足市場(chǎng)需求。因此,公司開始積極尋求與行業(yè)內(nèi)其他企業(yè)的合作機(jī)會(huì)。通過(guò)與多家知名電子企業(yè)建立戰(zhàn)略合作關(guān)系,Comair Rotron不僅獲得了更多的業(yè)務(wù)機(jī)會(huì),還通過(guò)與合作伙伴的技術(shù)交流和資源共享,不斷提升自身的技術(shù)水平和產(chǎn)品質(zhì)量。
1 C8051Fxxx單片機(jī)簡(jiǎn)單介紹和Flash結(jié)構(gòu) C8051Fxxx系列器件是Silicon Labs推出的一個(gè)高速單片機(jī)系列。這款單片機(jī)是完全集成的混合信號(hào)片上系統(tǒng)型MCU芯片,具有高速、流水線結(jié)構(gòu)的8051兼容的CIP51內(nèi)核;70%的指令的執(zhí)行時(shí)間為1個(gè)或2個(gè)系統(tǒng)時(shí)鐘周期 ...… 查看全部問(wèn)答∨ |
file:///C:/Documents%20and%20Settings/Administrator.4797A7AA28774FE/桌面/未命名.bmp請(qǐng)問(wèn)這個(gè)電路中電感RFC和電容Cbypass值應(yīng)如何計(jì)算,假如放大器的輸出頻率為5000MHz… 查看全部問(wèn)答∨ |
在本來(lái)的內(nèi)核上重定義使用的端口的問(wèn)題 我想測(cè)試ARM2440上的定時(shí)器PWM功能,但是買來(lái)的開發(fā)板只有2個(gè)定時(shí)器TIME2,TIME4引用出來(lái)了分別都是連接的一個(gè)控制聲音的芯片,可我現(xiàn)在要測(cè)試定時(shí),我可不可以重定義Time2這個(gè)端口來(lái)調(diào)試呢??? 開發(fā)板上的系統(tǒng)應(yīng)該是已經(jīng)把聲音的驅(qū)動(dòng)都寫進(jìn)去了的 ...… 查看全部問(wèn)答∨ |
make問(wèn)題,如何解決? 困擾很久了,感謝指點(diǎn) 在嵌入式系統(tǒng)上做Qt串口顯示程序 ,make后出現(xiàn)的問(wèn)題,查了一些資料,有的說(shuō)是pro里面的HEADERS忘記加就會(huì)出現(xiàn)這個(gè)問(wèn)題(具體加什么沒說(shuō));有的說(shuō)是出現(xiàn)“undefined reference”表示你缺少*.h 困擾很 ...… 查看全部問(wèn)答∨ |
一個(gè)簡(jiǎn)單的串口通信測(cè)試問(wèn)題 在初接觸串口編程的人,一定看到過(guò)一個(gè)簡(jiǎn)單的串口通信測(cè)試程序。點(diǎn)擊打開串口按鈕,設(shè)置相關(guān)參數(shù),然后在發(fā)送數(shù)據(jù)的Editbox內(nèi)輸入內(nèi)容,點(diǎn)擊發(fā)送按鈕。不過(guò)這樣操作在接收數(shù)據(jù)的Editbox內(nèi)接收不到內(nèi)容。不管是在wince仿真器上還是wince上都不行。 ...… 查看全部問(wèn)答∨ |
module nrz( output B_out, input B_in, input clk, input reset_b ); reg[1:0]state,next_state; parameter S_0=0; parameter S_1=1; parameter S_2=2; paramet ...… 查看全部問(wèn)答∨ |
US_CR = (1 << 2) | /* RSTRX: Reset Receiver: 1 = The receiver logic is reset. */ (1 < ...… 查看全部問(wèn)答∨ |
達(dá)人給講一下軟件加密的整體流程, 然后我最關(guān)心的是序列號(hào)是怎么產(chǎn)生的? 因?yàn)橐话阌密浖?cè)的話,輸個(gè)序列號(hào)以及注冊(cè)碼(注冊(cè)碼一般由輸入的序列號(hào)以及硬件碼運(yùn)算而得來(lái)的), 但問(wèn)題是這個(gè)序列號(hào)是怎么得出來(lái)的,怎么驗(yàn)證序列號(hào)的有效性,去 ...… 查看全部問(wèn)答∨ |
下載 (16.86 KB) 2009-8-11 14:48 那個(gè)啟動(dòng)文件 他都加進(jìn)去了 怎么能像他那樣 不用的3個(gè) 灰著 我百思不得其解 他怎么做的… 查看全部問(wèn)答∨ |
STM32f103c8t6定時(shí)器非自動(dòng)從裝設(shè)置 我現(xiàn)在把通用定時(shí)器配置為溢出中斷,做一個(gè)20ms的定時(shí)。我現(xiàn)在想不到20ms我把定時(shí)器失能,等我下次用的時(shí)候,定時(shí)器從零開始計(jì)數(shù)。我怎么配置定時(shí)器啊!下次啟用需要設(shè)置什么啊! 請(qǐng)各位大俠指教! 謝 ...… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無(wú)刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無(wú)線智能控制器的設(shè)計(jì)
- 基于PTR2000的無(wú)線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無(wú)人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- AI PC時(shí)代,英特爾和微軟引領(lǐng)PC產(chǎn)業(yè)翻開Windows 11 AI+ PC新篇章!
- 意法半導(dǎo)體推出針對(duì)消費(fèi)類和工業(yè)電源轉(zhuǎn)換器和電機(jī)控制器 優(yōu)化設(shè)計(jì)的GaN半橋驅(qū)動(dòng)器
- 德州儀器TI發(fā)布全球最小MCU,微型空間內(nèi)實(shí)現(xiàn)智能化
- 瑞聲科技+創(chuàng)昇半導(dǎo)體,能否撬動(dòng)智能座艙格局?
- 又一全固態(tài)電池產(chǎn)業(yè)項(xiàng)目簽約!
- 重大突破!兩大車企啟動(dòng)全固態(tài)電池路測(cè)
- 全球固態(tài)電池現(xiàn)重大進(jìn)展!
- 比亞迪刀片電池領(lǐng)先通過(guò)新國(guó)標(biāo)檢測(cè),安全性能獲權(quán)威認(rèn)證
- 一款國(guó)產(chǎn)車規(guī)智能隔離柵極驅(qū)動(dòng)器得推薦
- 一文聊聊禾賽科技激光雷達(dá)技術(shù)
- 省錢、省心的購(gòu)買租賃方案,讓您不再為預(yù)算煩惱!
- 【社區(qū)大講堂】頂嵌與你一起:動(dòng)手做嵌入式產(chǎn)品
- 下載、評(píng)論贏雙重好禮|PI 邀您跟littleshrimp一起拆解小米最新二合一充電寶
- 搶樓啦!一波兒精品教程來(lái)襲,評(píng)論轉(zhuǎn)發(fā)教程有禮!為2019國(guó)賽打氣助力~
- 直播已結(jié)束|Littelfuse 智能樓宇電子設(shè)備安全與可靠性解決方案
- 瑞薩電子 RL78/G11 目標(biāo)板免費(fèi)申請(qǐng)中,參與申請(qǐng)也能贏好禮
- 2024 DigiKey 應(yīng)用說(shuō):樹莓派 5 在視頻直播中的應(yīng)用
- 捉蟲行動(dòng)三:我們只要最精致的DSP資料!
- 有獎(jiǎng)直播 | 安富利、Nordic、TDK | AIoT“ 算法+芯片+終端 ”邊緣計(jì)算解決方案