国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 化工知識 > 如何理解STM32單片機(jī)引腳的復(fù)用功能?

如何理解STM32單片機(jī)引腳的復(fù)用功能?

時(shí)間:2020-09-18 來源:方正智芯 瀏覽:

在PLC的編程調(diào)試中,首先是要對系統(tǒng)的輸入/輸出(IO)進(jìn)行配置,也就是通常說的硬件組態(tài)。有了正確的IO分配,才能在編程的時(shí)候正確的讀取信號的輸入及控制信號的輸出。因此,IO配置是PLC調(diào)試最基礎(chǔ)也是最重要的工作。從這個(gè)方面來說,單片機(jī)的調(diào)試與PLC的調(diào)試有著異曲同工之妙。

對于單片機(jī)而言,GPIO引腳的配置是很基礎(chǔ)也是很重要的。錯(cuò)誤的引腳配置非但不能實(shí)現(xiàn)想要的功能,而且出錯(cuò)時(shí)往往不容易查找,耽誤調(diào)試的時(shí)間。這就需要編程調(diào)試人員對GPIO引腳的配置有很好的理解。今天這篇文章,我們就來談?wù)凷TM32Fxx系列單片機(jī)引腳的復(fù)用功能(Alternate Function)。

 

STM32Fxx系列單片機(jī)的GPIO引腳可以配置為浮空輸入(Input Floating)、上拉輸入(Input Pull-up)、下拉輸入(Input Pull-down)、模擬量(Analog)、開漏輸出(Output Open-drain)、推挽輸出(Output Push-pull)、復(fù)用開漏(Alternate function open-drain)輸出和復(fù)用推挽(Alternate function push-pull)輸出等八種模式。

先來介紹下開漏輸出和推挽輸出的區(qū)別:

STM32Fxx系列單片機(jī)的輸出電路有兩個(gè)MOS管:P-MOS和N-MOS。

在開漏輸出模式下,P-MOS管不工作,只有N-MOS管起作用。若輸出數(shù)據(jù)寄存器的值為0,則N-MOS導(dǎo)通,IO口輸出低電平;若輸出數(shù)據(jù)寄存器的值為1,則N-MOS截止;由于P-MOS不工作,此時(shí)IO口既不是高電平,也不是低電平,這種狀態(tài)被稱為高阻態(tài)。

在推挽輸出模式下,若輸出數(shù)據(jù)寄存器的值為0,則N-MOS導(dǎo)通,P-MOS截止,IO口輸出低電平;若輸出數(shù)據(jù)寄存器的值為1,則N-MOS截止,P-MOS導(dǎo)通,IO口輸出高電平;

我們知道STM32Fxx單片機(jī)還有復(fù)用開漏輸出和復(fù)用推挽輸出,它們和上面講到的(普通)開漏輸出和(普通)推挽輸出有什么區(qū)別呢?

這就涉及到針腳的復(fù)用功能。

我們知道,STM32Fxx內(nèi)部集成了很多的外設(shè)控制器,比如USART、SPI、bxCAN等等,這些外設(shè)控制器,也需要通過引腳與外設(shè)連接。復(fù)用功能是相對于單片機(jī)的引腳而言的。所謂“復(fù)用功能”,是指單片機(jī)的引腳既可以做普通GPIO使用,也可以作為內(nèi)部外設(shè)控制器的引腳來使用。

比如我們來看看STM32F103xx單片機(jī)的PA5引腳,如下圖:

首先,PA5可以做為普通GPIO來使用;其次,如果作為外設(shè)的引腳,它可以作為SPI1的時(shí)鐘(SPI1_SCK)、DAC的輸出通道1(DAC_OUT1)或者ADC的輸入通道5(ADC12_IN5)。

PA5支持的三種外設(shè)(SPI1、DAC、ADC)在同一時(shí)刻只能選擇一種,選擇的方法是開啟相應(yīng)外設(shè)的時(shí)鐘,并使其它外設(shè)的時(shí)鐘保持關(guān)閉狀態(tài)。如果PA5被配置為復(fù)用功能,但是沒有開啟它支持的任何外設(shè)的時(shí)鐘,它的輸出是不確定的。

復(fù)用推挽輸出和(普通)推挽輸出在輸出的時(shí)候均使用兩個(gè)MOS管(P-MOS和-MOS),其輸出電路是相同的。區(qū)別在于控制輸出的信號來源:(普通)推挽輸出控制MOS管的信號來自輸出數(shù)據(jù)寄存器,而復(fù)用推挽輸出的控制信號來自單片機(jī)的內(nèi)置外設(shè)控制器(比如SPI1)。

復(fù)用開漏輸出和(普通)開漏輸出的道理是一樣的。

下面這張圖,是普通GPIO輸出的引腳配置圖,可以看到其輸出信號來自輸出數(shù)據(jù)寄存器(Output data register):

 

下面這張圖,是選擇復(fù)用功能后的引腳配置圖,可以看到其輸出信號來自芯片內(nèi)置的外設(shè)控制器:

注:雖然復(fù)用模式的控制信號來自內(nèi)置外設(shè)控制器,但是單片機(jī)(CPU)依然可以讀取相應(yīng)的數(shù)據(jù)。在復(fù)用推挽輸出模式下,單片機(jī)可以通過讀取輸出數(shù)據(jù)寄存器(Output Data Register)的數(shù)據(jù)來獲取上次輸出的值;在復(fù)用開漏輸出的模式下,單片機(jī)可以通過讀取輸入數(shù)據(jù)寄存器(Input Data Register)的值來獲取引腳的狀態(tài)。

好了,關(guān)于STM32Fxx系列單片機(jī)引腳的復(fù)用功能就先聊到這里。關(guān)于引腳的配置還有一個(gè)重定位(Remap)的功能,我們以后再聊。

版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時(shí)內(nèi)刪除。
相關(guān)推薦