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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] stm32的引腳有兩種用途:GPIO(generalpurposeio)和AFIO(alternatefunctionio)對(duì)于一些引腳(視芯片而定),這兩種用途都沒(méi)有,如在64腳產(chǎn)品中,OSC_IN/OSC_OUT與作為GPIO端口的PD0/PD1共用一樣的引

 

stm32的引腳有兩種用途:GPIO(generalpurposeio)和AFIO(alternatefunctionio)

對(duì)于一些引腳(視芯片而定),這兩種用途都沒(méi)有,如在64腳產(chǎn)品中,OSC_IN/OSC_OUT與作為GPIO端口的PD0/PD1共用一樣的引腳,而在100、144引腳產(chǎn)品中,這四個(gè)功能各有引腳與之對(duì)應(yīng),不互相沖突,所以O(shè)SC_IN/OSC_OUT既不作GPIO也不作AFIO,當(dāng)然,這樣的引腳不是討論重點(diǎn)。

1、引腳的配置

不論是作GPIO還是做AFIO,都要對(duì)引腳進(jìn)行配置。在固件庫(kù)函數(shù)中,用GPIO_Init()函數(shù)對(duì)引腳進(jìn)行配置,并不是說(shuō)這個(gè)函數(shù)帶了“GPIO”字樣就是要當(dāng)做GPIO來(lái)用,而是把它納入GPIO的范疇來(lái)討論。

所謂配置,就是引腳上的片上資源連接方式,如上拉電阻、密特觸發(fā)等等。關(guān)于配置的問(wèn)題,請(qǐng)見(jiàn)http://www.cnblogs.com/king-77024128/articles/1999395.html?1?3。理解了配置,也就能明白配置與模式的區(qū)別。

特別得,在下文中將會(huì)專(zhuān)門(mén)討論一下輸出配置中的推挽與開(kāi)漏。

2、復(fù)用功能

復(fù)用功能有兩種:沒(méi)有重映像、重映像(包括部分重映像、完全重映像),使用引腳用作AFIO功能,同樣需要對(duì)其進(jìn)行配置。

這三句話(huà)來(lái)自參考手冊(cè),但我對(duì)第一句和注意有疑問(wèn),第三節(jié)講。如果把端口配置成復(fù)用輸出功能,則引腳和輸出寄存器斷開(kāi),并和片上外設(shè)的輸出信號(hào)連接。輸入配置則與GPIO沒(méi)有區(qū)別。

為什么輸出模式有專(zhuān)門(mén)的復(fù)用模式而輸入則沒(méi)有呢。因?yàn)檩敵鍪怯尚酒瑑?nèi)部電路驅(qū)動(dòng)的,必須選擇這個(gè)驅(qū)動(dòng)來(lái)自哪一個(gè)外設(shè),是GPIO還是復(fù)用此管腳的其他外設(shè),也就是選擇該管腳在內(nèi)部是與哪個(gè)外設(shè)相連的,不說(shuō)明這個(gè)就會(huì)發(fā)生信號(hào)的錯(cuò)亂。而輸入則不同了,輸入信號(hào)是由芯片外的信號(hào)驅(qū)動(dòng)的,雖然該信號(hào)進(jìn)入芯片內(nèi)部后可能有不同的去向,但不需要對(duì)此進(jìn)行配置,因?yàn)椴粫?huì)發(fā)生信號(hào)的沖突,最壞的情況就是多驅(qū)動(dòng)了個(gè)寄存器而已。事實(shí)上,當(dāng)將引腳作為GPIO輸入時(shí),相應(yīng)的AFIO外設(shè)是處在關(guān)閉的狀態(tài),并不會(huì)耗電;當(dāng)引腳作為AFIO的輸入時(shí),可能GPIO是讀不進(jìn)來(lái)的,這是我猜的,沒(méi)有驗(yàn)證,能不能讀進(jìn)來(lái)無(wú)所謂的,不必糾結(jié)于此。

若選擇了復(fù)用,則默認(rèn)是沒(méi)有重映像的,可以直接使用外設(shè),不需要再軟件做設(shè)置。

但若要重映射,則需要簡(jiǎn)單設(shè)置一下,

先要配置重映射后對(duì)應(yīng)的管腳,可參看參考手冊(cè)或數(shù)據(jù)手冊(cè)引腳定義章節(jié),開(kāi)AFIO時(shí)鐘,使能重映射。例如重映射USART1,全部代碼如下:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

/*對(duì)寄存器AFIO_EVCR,AFIO_MAPR和AFIO_EXTICRX進(jìn)行讀寫(xiě)操作前,即重映射和選擇外部中斷線前,應(yīng)當(dāng)首先打開(kāi)AFIO的時(shí)鐘*/

 

/*ConfigureUSART1Tx(PA.09)asalternatefunctionpush-pull*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOB,&GPIO_InitStructure);

 

/*ConfigureUSART1Rx(PA.10)asinputfloating*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOB,&GPIO_InitStructure);

GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);

這就完成了IO口的配置和重映射,下邊再配置相關(guān)的外設(shè)(USART1)就可以使用了。

外部中斷線也是可以映射的,并且需要開(kāi)AFIO時(shí)鐘,不用GPIO_PinRemap函數(shù),用GPIO_EXTILineConfig重映射引腳到中斷線。其實(shí)與其說(shuō)是映射,不如說(shuō)是選擇,選擇引腳連接到外部中斷線。

重映射不是任意的,只能重映射到指定的管腳。

3、關(guān)于第二節(jié)講到那個(gè)疑問(wèn),為甚么不能配置成模擬輸入?模擬輸入與浮空什么區(qū)別?

答案是可以配置成模擬輸入,官方3.5版固件庫(kù)例子和alientek例程都是將ADC輸入引腳配置成GPIO_Mode_AIN

那么配置成浮空行么,還能ADC么?

//例程

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOC, &GPIO_InitStructure);

//修改

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOC, &GPIO_InitStructure);

實(shí)驗(yàn)證明,這兩種配置都能實(shí)現(xiàn)ADC。那么USART的Tx應(yīng)配置成GPIO_Mode_IN_FLOATING,如果配置成GPIO_Mode_AIN,還能接受數(shù)據(jù)么?金牛板實(shí)驗(yàn)結(jié)果是不能,ST不我欺也??傊?/p>

可以將引腳配置成模擬輸入,使用相應(yīng)的復(fù)用功能;

浮空與模擬這兩種配置是不同的。

關(guān)于第二節(jié)里那個(gè)“注意“,我也不知道是什么意思。我猜測(cè)是這樣的:打開(kāi)某外設(shè),這個(gè)外設(shè)將某引腳當(dāng)做輸入,我們偏偏把這個(gè)引腳配置為GPIO輸出,這樣可以操作GPIO來(lái)”欺騙“這個(gè)外設(shè),這種用法應(yīng)該是很微妙的。

4、推挽與開(kāi)漏

不僅僅stm32有這種配置,實(shí)際上,這兩種已經(jīng)廣泛應(yīng)用在很多場(chǎng)合。

推挽,又叫做推拉,是個(gè)很形象的名字,一般是指兩個(gè)三極管(MOS管)分別受兩互補(bǔ)信號(hào)(或者一個(gè)信號(hào),但是用互補(bǔ)對(duì)管)的控制,總是在一個(gè)三極管導(dǎo)通的時(shí)候另一個(gè)截止,這樣的電路被稱(chēng)為推挽式(互補(bǔ)式):

這種電路在放大中通常被用作輸出級(jí),在STM32中,推挽配置就是這種,如圖:

在相應(yīng)位置1時(shí),P-MOS導(dǎo),通N-MOS截止,輸出電壓為VDD;在相應(yīng)位置0時(shí),N-MOS導(dǎo)通,P-MOS截止,輸出電壓為VSS,這就是所謂的推挽。是比較簡(jiǎn)單的。

而所謂的開(kāi)漏(對(duì)三極管而言是開(kāi)集,一樣的原理),則要巧妙一些。所謂開(kāi)漏電路概念中提到的“漏”就是指MOS FET的漏極。同理,開(kāi)集電路中的“集”就是指三極管的集電極。開(kāi)漏電路就是指以MOS FET的漏極為輸出的電路。一般的用法是會(huì)在漏極外部的電路添加上拉電阻。完整的開(kāi)漏電路應(yīng)該由開(kāi)漏器件和開(kāi)漏上拉電阻組成。

對(duì)于stm32,開(kāi)漏就是失能了P-MOS,這樣,當(dāng)相應(yīng)位置1時(shí),引腳實(shí)際上是處在了浮空的狀態(tài),而通過(guò)外接的上拉電阻,將其拉高。

這么做有如下的好處:

1、可以將多個(gè)開(kāi)漏輸出的引腳,連接到一條線上。形成“與邏輯”關(guān)系。當(dāng)多個(gè)引腳任意一個(gè)變低后,開(kāi)漏線上的邏輯就為0了。這也是I2C,SMBus等總線判斷總線占用狀態(tài)的原理。在我的文章“stm32模擬iic——引腳配置、代碼”中,還會(huì)提到這個(gè)問(wèn)題。
2、可以利用改變上拉電源的電壓,改變傳輸電平。這樣我們就可以用低電平邏輯控制輸出高電平邏輯了。想想當(dāng)初認(rèn)為stm32輸出3.3v電壓帶不動(dòng)IRF540,就直接斷定要重新選型,是錯(cuò)誤的想法,只要將推挽輸出變?yōu)殚_(kāi)漏,再加上上拉到5v的電阻,就能解決這個(gè)問(wèn)題。

順便一提,上拉電阻的阻值決定了邏輯電平轉(zhuǎn)換的沿的速度。阻值越大,速度越低功耗越小。反之亦然。

 

 

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

本文中,小編將介紹在設(shè)計(jì)過(guò)程中如何處理運(yùn)放或比較器中多余的引腳,如果你對(duì)本文內(nèi)容具有興趣,不妨請(qǐng)看以下內(nèi)容哦。

關(guān)鍵字: 引腳 運(yùn)放 比較器

檢查電解電容的膠管或引腳,通常膠管一端印有負(fù)極標(biāo)識(shí),引腳處有帶網(wǎng)格的一端代表負(fù)極。

關(guān)鍵字: 電解電容 正負(fù)極 引腳

單片機(jī)是一種數(shù)字器件,只能處理數(shù)字量,在工業(yè)生產(chǎn)和日常生活中,常用于電流、電壓、溫度、濕度和壓力等信號(hào)的監(jiān)測(cè)或處理。而這些信號(hào)都是連續(xù)變化的模擬量,被單片機(jī)處理之前必須轉(zhuǎn)成數(shù)字量,而單片機(jī)處理后得到的數(shù)字量也要根據(jù)需要轉(zhuǎn)...

關(guān)鍵字: ADC0809芯片 A-D轉(zhuǎn)換器 引腳

MCS-51系列單片機(jī)產(chǎn)品有8051,8031,8751,80C51,80C31等型號(hào)(前三種為CMOS芯片,后兩種為CHMOS芯片)。它們的結(jié)構(gòu)基本相同,其主要差別反映在存儲(chǔ)器的配置上。8051內(nèi)部設(shè)有4K字節(jié)的掩模R...

關(guān)鍵字: MCS-51 單片機(jī) 引腳

我們知道一般的IC元器件通常只有兩個(gè)電源引腳,一個(gè)是Vcc或Vdd,另一個(gè)是Gnd或Vss。但是現(xiàn)在的MCU通常卻有多組電源引腳,這是什么原因呢?以某款100腳MCU為例,可以看到它有5組VDD/VSS,并且會(huì)要求每一組...

關(guān)鍵字: IC元器 電源 引腳

本文來(lái)源面包板社區(qū)現(xiàn)在,工程師做SMT貼片已經(jīng)越來(lái)越方便,但是,對(duì)SMT中的各項(xiàng)工藝,作為工程師的你真的了解“透”了嗎?本文整理了“五大SMT常見(jiàn)工藝缺陷”,幫你填坑,速速get吧!缺陷一:“立碑”現(xiàn)象即片式元器件發(fā)生“...

關(guān)鍵字: SMT GE 元件 引腳

本文來(lái)源于信號(hào)完整性作者:Hank?ZumbahlenHankZumbahlen1989年進(jìn)入ADI公司,最初擔(dān)任駐加州的現(xiàn)場(chǎng)應(yīng)用工程師。在過(guò)去數(shù)年中,他還作為高級(jí)應(yīng)用工程師,參與了培訓(xùn)和研討會(huì)發(fā)展工作。此前,他在Sig...

關(guān)鍵字: 接地 引腳 ADC 混合信號(hào)

雙列直插封裝(英語(yǔ):dual in-line package) 也稱(chēng)為DIP封裝或DIP包裝,簡(jiǎn)稱(chēng)為DIP或DIL,是一種集成電路的封裝方式,集成電路的外形為長(zhǎng)方形,在其兩側(cè)則有兩排平行的金屬引腳,稱(chēng)為排針。DIP包裝的...

關(guān)鍵字: DIP 引腳 通孔插裝

CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 應(yīng)用的一個(gè)真正的片上系統(tǒng)(SoC)解決方案。它能夠以非常低的總的材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。

關(guān)鍵字: cc2530 引腳

USBType-C是USB連接器系統(tǒng)的規(guī)范,在智能手機(jī)和移動(dòng)設(shè)備上越來(lái)越受歡迎,并且能夠進(jìn)行電力傳輸和數(shù)據(jù)傳輸。與USB的早些產(chǎn)品不同,它也是可翻轉(zhuǎn)的-所以你不需要嘗試多次插入。01什么是USB-Type-CUSB-C是...

關(guān)鍵字: Type-C 引腳 信號(hào)
關(guān)閉