專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
在本篇文章中,我們將進(jìn)一步了解單片機(jī)一些外設(shè)的中斷:定時(shí)器,串行通信和ADC。下面將簡(jiǎn)要介紹GPIO在單片機(jī)中的作用,并一些熟悉的外設(shè)中的中斷概念。
GPIO對(duì)單片機(jī)的作用
1.GPIO代表通用輸入/輸出,有時(shí)也稱為數(shù)字I/O控制器。
2.單片機(jī)具有通過其與外界交互的引腳。這些引腳通常產(chǎn)生或接收單片機(jī)處理的電信號(hào)。
3.GPIO是連接到單片機(jī)某些引腳的外設(shè)。
GPIO允許你將引腳配置為輸入或輸出。當(dāng)引腳配置為輸入時(shí),假設(shè)外部連接到引腳上的東西確定引腳上的電信號(hào)是什么。例如,如果我將引腳連接到開關(guān),然后將該開關(guān)連接到電壓源,則可以使用該開關(guān)來控制引腳上的電信號(hào)是無電壓(0V)還是某個(gè)電壓(無論電壓為來源是)。當(dāng)引腳配置為輸入時(shí),單片機(jī)將決定引腳上的信號(hào)是什么。
引腳連接到單片機(jī)中的寄存器,允許你讀取值或?qū)⑺璧闹祵懭氤绦蛑械囊_。引腳上的值被編碼為一位(0或1)。0通常表示非常低的電壓,而1通常表示通常與單片機(jī)上的工作電壓等效的高壓。例如,對(duì)于以3.3V工作的STM32L151C6,當(dāng)電壓小于0.99V時(shí)輸入被讀取為0,而當(dāng)電壓大于2.31V時(shí)輸入被讀取為1。
其他外圍設(shè)備的中斷
下面,我們將簡(jiǎn)要討論其他通用外設(shè)及其可能提供的中斷類型。
一、計(jì)時(shí)器
大多數(shù)單片機(jī)至少具有一個(gè)計(jì)時(shí)器。計(jì)時(shí)器包含與時(shí)鐘信號(hào)一起使用的計(jì)數(shù)器,以提供經(jīng)過時(shí)間的感覺。計(jì)時(shí)器的計(jì)數(shù),除了計(jì)數(shù)器的計(jì)數(shù)速度如何外,還確定“真實(shí)世界”的時(shí)間已流逝了多少。
大多數(shù)定時(shí)器可以配置為在計(jì)數(shù)到特定值時(shí)生成中斷,通常有兩種情況的中斷。
第一種情況是溢出。如果計(jì)數(shù)器正在向上計(jì)數(shù),則這是達(dá)到最大值的時(shí)間。如果是遞減計(jì)數(shù),則這是達(dá)到最小值的時(shí)間。達(dá)到溢出后,計(jì)數(shù)器的行為方式會(huì)不同地設(shè)計(jì)不同的單片機(jī)。有時(shí),此行為是可配置的。
第二種情況是當(dāng)它計(jì)算用戶特定的值時(shí)。不管引起中斷的事件是什么,通常都會(huì)在定時(shí)器內(nèi)部設(shè)置一個(gè)標(biāo)志,在中斷控制器內(nèi)部設(shè)置一個(gè)標(biāo)志,以及與定時(shí)器中斷相關(guān)的中斷向量。定時(shí)器可能有多個(gè)中斷向量,每個(gè)中斷向量都與一個(gè)不同的事件相關(guān)聯(lián)。
二、串行通訊
大多數(shù)單片機(jī)還具有串行通信,可以使它們將消息發(fā)送到其他設(shè)備。通常,有數(shù)據(jù)緩沖區(qū)(有時(shí)一個(gè)用于發(fā)送,另一個(gè)用于接收)。
可能會(huì)有一個(gè)中斷,使CPU知道剛剛在接收緩沖區(qū)中接收到數(shù)據(jù)。如果將數(shù)據(jù)放入發(fā)送緩沖區(qū)中,則可能會(huì)有中斷讓CPU知道已成功發(fā)送數(shù)據(jù),因此緩沖區(qū)已準(zhǔn)備好接收新數(shù)據(jù)。
某些通信帶有信號(hào),設(shè)備必須首先確定誰可以發(fā)送消息。在這種情況下,可能會(huì)有一個(gè)中斷讓CPU知道另一設(shè)備已準(zhǔn)備好接收或另一設(shè)備打算發(fā)送數(shù)據(jù)。
三、模數(shù)轉(zhuǎn)換器
一些單片機(jī)配備了模數(shù)轉(zhuǎn)換器,該模數(shù)轉(zhuǎn)換器接收在一定范圍內(nèi)變化的模擬電壓,并轉(zhuǎn)換為二進(jìn)制形式,供單片機(jī)進(jìn)一步處理。對(duì)話過程需要時(shí)間,因此通常會(huì)有一個(gè)中斷來通知CPU,在CPU啟動(dòng)轉(zhuǎn)換后完成轉(zhuǎn)換。