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

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

 

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

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

1、引腳的配置

不論是作GPIO還是做AFIO,都要對引腳進行配置。在固件庫函數(shù)中,用GPIO_Init()函數(shù)對引腳進行配置,并不是說這個函數(shù)帶了“GPIO”字樣就是要當做GPIO來用,而是把它納入GPIO的范疇來討論。

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

特別得,在下文中將會專門討論一下輸出配置中的推挽與開漏。

2、復用功能

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

這三句話來自參考手冊,但我對第一句和注意有疑問,第三節(jié)講。如果把端口配置成復用輸出功能,則引腳和輸出寄存器斷開,并和片上外設的輸出信號連接。輸入配置則與GPIO沒有區(qū)別。

為什么輸出模式有專門的復用模式而輸入則沒有呢。因為輸出是由芯片內(nèi)部電路驅動的,必須選擇這個驅動來自哪一個外設,是GPIO還是復用此管腳的其他外設,也就是選擇該管腳在內(nèi)部是與哪個外設相連的,不說明這個就會發(fā)生信號的錯亂。而輸入則不同了,輸入信號是由芯片外的信號驅動的,雖然該信號進入芯片內(nèi)部后可能有不同的去向,但不需要對此進行配置,因為不會發(fā)生信號的沖突,最壞的情況就是多驅動了個寄存器而已。事實上,當將引腳作為GPIO輸入時,相應的AFIO外設是處在關閉的狀態(tài),并不會耗電;當引腳作為AFIO的輸入時,可能GPIO是讀不進來的,這是我猜的,沒有驗證,能不能讀進來無所謂的,不必糾結于此。

若選擇了復用,則默認是沒有重映像的,可以直接使用外設,不需要再軟件做設置。

但若要重映射,則需要簡單設置一下,

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

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

/*對寄存器AFIO_EVCR,AFIO_MAPR和AFIO_EXTICRX進行讀寫操作前,即重映射和選擇外部中斷線前,應當首先打開AFIO的時鐘*/

 

/*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口的配置和重映射,下邊再配置相關的外設(USART1)就可以使用了。

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

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

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

答案是可以配置成模擬輸入,官方3.5版固件庫例子和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);

實驗證明,這兩種配置都能實現(xiàn)ADC。那么USART的Tx應配置成GPIO_Mode_IN_FLOATING,如果配置成GPIO_Mode_AIN,還能接受數(shù)據(jù)么?金牛板實驗結果是不能,ST不我欺也。總之:

可以將引腳配置成模擬輸入,使用相應的復用功能;

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

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

4、推挽與開漏

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

推挽,又叫做推拉,是個很形象的名字,一般是指兩個三極管(MOS管)分別受兩互補信號(或者一個信號,但是用互補對管)的控制,總是在一個三極管導通的時候另一個截止,這樣的電路被稱為推挽式(互補式):

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

在相應位置1時,P-MOS導,通N-MOS截止,輸出電壓為VDD;在相應位置0時,N-MOS導通,P-MOS截止,輸出電壓為VSS,這就是所謂的推挽。是比較簡單的。

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

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

這么做有如下的好處:

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

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

 

 

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

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

關鍵字: 引腳 運放 比較器

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

關鍵字: 電解電容 正負極 引腳

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

關鍵字: ADC0809芯片 A-D轉換器 引腳

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

關鍵字: MCS-51 單片機 引腳

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

關鍵字: IC元器 電源 引腳

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

關鍵字: SMT GE 元件 引腳

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

關鍵字: 接地 引腳 ADC 混合信號

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

關鍵字: DIP 引腳 通孔插裝

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

關鍵字: cc2530 引腳

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

關鍵字: Type-C 引腳 信號
關閉