在本篇文章中,我們將進一步了解單片機一些外設的中斷:定時器,串行通信和ADC。下面將簡要介紹GPIO在單片機中的作用,并一些熟悉的外設中的中斷概念。
GPIO對單片機的作用
1.GPIO代表通用輸入/輸出,有時也稱為數(shù)字I/O控制器。
2.單片機具有通過其與外界交互的引腳。這些引腳通常產生或接收單片機處理的電信號。
3.GPIO是連接到單片機某些引腳的外設。
GPIO允許你將引腳配置為輸入或輸出。當引腳配置為輸入時,假設外部連接到引腳上的東西確定引腳上的電信號是什么。例如,如果我將引腳連接到開關,然后將該開關連接到電壓源,則可以使用該開關來控制引腳上的電信號是無電壓(0V)還是某個電壓(無論電壓為來源是)。當引腳配置為輸入時,單片機將決定引腳上的信號是什么。
引腳連接到單片機中的寄存器,允許你讀取值或將所需的值寫入程序中的引腳。引腳上的值被編碼為一位(0或1)。0通常表示非常低的電壓,而1通常表示通常與單片機上的工作電壓等效的高壓。例如,對于以3.3V工作的STM32L151C6,當電壓小于0.99V時輸入被讀取為0,而當電壓大于2.31V時輸入被讀取為1。
其他外圍設備的中斷
下面,我們將簡要討論其他通用外設及其可能提供的中斷類型。
一、計時器
大多數(shù)單片機至少具有一個計時器。計時器包含與時鐘信號一起使用的計數(shù)器,以提供經過時間的感覺。計時器的計數(shù),除了計數(shù)器的計數(shù)速度如何外,還確定“真實世界”的時間已流逝了多少。
大多數(shù)定時器可以配置為在計數(shù)到特定值時生成中斷,通常有兩種情況的中斷。
第一種情況是溢出。如果計數(shù)器正在向上計數(shù),則這是達到最大值的時間。如果是遞減計數(shù),則這是達到最小值的時間。達到溢出后,計數(shù)器的行為方式會不同地設計不同的單片機。有時,此行為是可配置的。
第二種情況是當它計算用戶特定的值時。不管引起中斷的事件是什么,通常都會在定時器內部設置一個標志,在中斷控制器內部設置一個標志,以及與定時器中斷相關的中斷向量。定時器可能有多個中斷向量,每個中斷向量都與一個不同的事件相關聯(lián)。
二、串行通訊
大多數(shù)單片機還具有串行通信,可以使它們將消息發(fā)送到其他設備。通常,有數(shù)據(jù)緩沖區(qū)(有時一個用于發(fā)送,另一個用于接收)。
可能會有一個中斷,使CPU知道剛剛在接收緩沖區(qū)中接收到數(shù)據(jù)。如果將數(shù)據(jù)放入發(fā)送緩沖區(qū)中,則可能會有中斷讓CPU知道已成功發(fā)送數(shù)據(jù),因此緩沖區(qū)已準備好接收新數(shù)據(jù)。
某些通信帶有信號,設備必須首先確定誰可以發(fā)送消息。在這種情況下,可能會有一個中斷讓CPU知道另一設備已準備好接收或另一設備打算發(fā)送數(shù)據(jù)。
三、模數(shù)轉換器
一些單片機配備了模數(shù)轉換器,該模數(shù)轉換器接收在一定范圍內變化的模擬電壓,并轉換為二進制形式,供單片機進一步處理。對話過程需要時間,因此通常會有一個中斷來通知CPU,在CPU啟動轉換后完成轉換。