版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
STM32GPIO使用操作步驟:.使能GPIO對應(yīng)的外設(shè)時(shí)鐘例如://使能GPIOA、GPIOB、GPIOC對應(yīng)的外設(shè)時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);.聲明一個(gè)GPIO_InitStructu結(jié)構(gòu)體例如:GPIO_InitTypeDefGPIO_InitStructure;.選擇待設(shè)置的GPIO管腳例如://選擇待設(shè)置的GPIO第7、8、9管腳位,中間加“|”符號GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;.設(shè)置選中GPIO管腳的速率例如://殳置選中GPIO管腳的速率為最高速率2MHzGPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MH最高速率2MHz.設(shè)置選中GPIO管腳的模式例如:〃設(shè)置選中GPIO管腳的模式為開漏輸出模式GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_OD;開漏輸出模式.根據(jù)GPIO_InitStructure指定的參數(shù)初始化外設(shè)GPIOX例如:GPIO_Init(GPIOC,&GPIO_InitStructure);.其他應(yīng)用例:將端口GPIOA的第10、15腳置1(高電平)GPIO_SetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_15);例:將端口GPIOA的第10,15腳置0(低電平)GPIO_ResetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_15);1/17
GPIO寄存器:寄存器描述CRL 端口配置低寄存器CRH 端口配置高寄存器IDR 端口輸入數(shù)據(jù)寄存器ODR 端口輸出數(shù)據(jù)寄存器BSRR 端口位設(shè)置/復(fù)位寄存器BRR 端口位復(fù)位寄存器LCKR 端口配置鎖定寄存器EVCR 事件控制寄存器MAPR 復(fù)用重映射和調(diào)試I/O 配置寄存器EXTICR外部中斷線路0-15配置寄存器GPIO庫函數(shù):函數(shù)名 描述GPIO_DeInit 將外設(shè)GPIOx寄存器重設(shè)為缺省值GPIO_AFIODeInit將復(fù)用功能(重映射事件控制和EXTI設(shè)置)重設(shè)為缺省值GPIO_AFIODeInitGPIO_Init 根據(jù)GPIO_InitStru中指定的參數(shù)初始化外設(shè)GPIOx寄存器GPIO_StructInit把GPIO_InitStruC|^q每一個(gè)參數(shù)按缺省值填入GPIO_StructInitGPIO_ReadInputDataBit讀取指定端口管腳的輸入GPIO_ReadInputData讀取指定的GPIO端口輸入GPIO_ReadOutputDataBit讀取指定端口管腳的輸出GPIO_ReadOutputData讀取指定的GPIO端口輸出2/17GPIO_SetBits設(shè)置指定的數(shù)據(jù)端口位GPIO_ResetBits清除指定的數(shù)據(jù)端口位GPIOWriteBit設(shè)置或者清除指定的數(shù)據(jù)端口位GPIOWrite向指定GPIO數(shù)據(jù)端口寫入數(shù)據(jù)GPIO_PinLockConfig 鎖定GPIO管腳設(shè)置寄存器GPIO_EventOutputConfig選擇GPIO管腳用作事件輸出GPIO_EventOutputCmd 使能或者失能事件輸出GPIO_PinRemapConfig改變指定管腳的映射GPIO_EXTILineConfig 選擇GPIO管腳用作外部中斷線路庫函數(shù):函數(shù)GPIO_DeInit功能描述:將外設(shè)GPIOx寄存器重設(shè)為缺省值例:GPIO_DeInit(GPIOA);函數(shù)GPIO_AFIODeInit功能描述:將復(fù)用功能(重映射事件控制和EXTI設(shè)置)重設(shè)為缺省值例:GPIO_AFIODeInit();函數(shù)GPIO_Init功能描述:根據(jù)GPIO_InitStru中指定的參數(shù)初始化外設(shè)GPIOx寄存器例:GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);3/17GPIO_InitTypeDefstructureGPIO_InitTypeDef[義于文件“$532f10x_gpio.”h:typedefstruct{u16GPIO_Pin;GPIOSpeed_TypeDefGPIO_Speed;GPIOMode_TypeDefGPIO_Mode;)GPIO_InitTypeDef;GPIO_Pin該參數(shù)選擇待設(shè)置的GPIO管腳,使用操作符“|”可以一次選中多個(gè)管腳??梢允褂孟卤碇械娜我饨M合。GPIO_Pin_None:無管腳被選中GPIO_Pin_x: 選中管腳x(0--15)GPIO_Pin_All 選中全部管腳GPIO_SpeedGPIO_Speed:用以設(shè)置選中管腳的速率。GPIO_Speed_10MHz:最高輸出速率10MHzGPIO_Speed_2MHz:最高輸出速率2MHzGPIO_Speed_50MHz:最高輸出速率50MHzGPIO_ModeGPIO_Mode:用以設(shè)置選中管腳的工作狀態(tài)。GPIO_Mode_AIN: 模擬輸入4/17GPIO_Mode_IN_FLOATING:浮空輸入GPIO_Mode_IPD: 下拉輸入GPIO_Mode_IPU: 上拉輸入GPIO_Mode_Out_OD:開漏輸出GPIO_Mode_Out_PP:推挽輸出GPIO_Mode_AF_OD: 復(fù)用開漏輸出GPIO_Mode_AF_PP: 復(fù)用推挽輸出函數(shù)GPIO_StructInit功能描述:把GPIO_InitStru中的每一個(gè)參數(shù)按缺省值填入例:GPIO_InitTypeDefGPIO_InitStructure;GPIO_StructInit(&GPIO_InitStructure);GPIO_InitStructGPIO_Pin:GPIO_Pin_AllGPIO_Speed:GPIO_Speed_2MHzGPIO_Mode:GPIO_Mode_IN_FLOATING函數(shù)GPIO_ReadInputDataBit功能描述:讀取指定端口管腳的輸入例:u8ReadValue;ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7);函數(shù)GPIO_ReadInputData功能描述:讀取指定的GPIO端口輸入例:5/17u16ReadValue;ReadValue=GPIO_ReadInputData(GPIOC);函數(shù)GPIO_ReadOutputDataBit功能描述:讀取指定端口管腳的輸出例:u8ReadValue;ReadValue=GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_7);函數(shù)GPIO_ReadOutputData功能描述:讀取指定的GPIO端口輸出例:u16ReadValue;ReadValue=GPIO_ReadOutputData(GPIOC);函數(shù)GPIO_SetBits功能描述:置位指定的數(shù)據(jù)端口位例:將端口GPIOA的第10,15腳置1(高電平)GPIO_SetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_15);函數(shù)GPIO_ResetBits功能描述:清除指定的數(shù)據(jù)端口位例:將端口GPIOA的第10,15腳置0(低電平)GPIO_ResetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_15);函數(shù)GPIO_WriteBit功能描述:設(shè)置或者清除指定的數(shù)據(jù)端口位例:GPIO_WriteBit(GPIOA,GPIO_Pin_15,Bit_SET);6/17函數(shù)GPIO_Write功能描述:向指定GPIO數(shù)據(jù)端口寫入數(shù)據(jù)例:GPIO_Write(GPIOA,0x1101);函數(shù)GPIO_PinLockConfig功能描述:鎖定GPIO管腳設(shè)置寄存器例:GPIO_PinLockConfig(GPIOA,GPIO_Pin_0|GPIO_Pin_1);函數(shù)GPIO_EventOutputConfig功能描述:選擇GPIO管腳用作事件輸出例:GPIO_EventOutputConfig(GPIO_PortSourceGPIOE,GPIO_PinSource5);GPIO_PortSourceGPIO_PortSource用以選擇用作事件輸出的GPIO端口。函數(shù)GPIO_EventOutputCmd功能描述:使能或者失能事件輸出例:GPIO_EventOutputConfig(GPIO_PortSourceGPIOC,GPIO_PinSource6);GPIO_EventOutputCmd(ENABLE);函數(shù)GPIO_PinRemapConfig功能描述:改變指定管腳的映射例:GPIO_PinRemapConfig(GPIO_Remap_I2C1,ENABLE);一.GPIO概述1、共有8種模式,可以通過編程選擇:1.浮空輸入 帶上拉輸入 帶下拉輸入 模擬輸入7/175.開漏輸出一一此模式可實(shí)現(xiàn)hotpower說的真雙向IO) 推挽輸出7.復(fù)用功能的推挽輸出8.復(fù)用功能的開漏輸出模式7和模式8需根據(jù)具體的復(fù)用功能決定。2、專門的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現(xiàn)對GPIO口的原子操作,即回避了設(shè)置或清除I/O端口時(shí)的“讀-修改-寫”操作,使得設(shè)置或清除上。端口的操作不會被中斷處理打斷而造成誤動(dòng)作。3、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統(tǒng)靈活設(shè)計(jì)。4、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。這個(gè)速度是指I/O口驅(qū)動(dòng)電路的響應(yīng)速度而不是輸出信號的速度,輸出信號的速度與程序有關(guān)(芯片內(nèi)部在I/O口的輸出部分安排了多個(gè)響應(yīng)速度不同的輸出驅(qū)動(dòng)電路,用戶可以根據(jù)自己的需要選擇合適的驅(qū)動(dòng)電路)。通過選擇速度來選擇不同的輸出驅(qū)動(dòng)模塊,達(dá)到最佳的噪聲控制和降低功耗的目的。高頻的驅(qū)動(dòng)電路,噪聲也高,當(dāng)不需要高的輸出頻率時(shí),請選用低頻驅(qū)動(dòng)電路,這樣非常有利于提高系統(tǒng)的EMI性能。當(dāng)然如果要輸出較高頻率的信號,但卻選用了較低頻率的驅(qū)動(dòng)模塊,很可能會得到失真的輸出信號。各種接口的措施:對于串口,假如最大波特率只需115.2k那么用2M的GPIO的引腳速度就夠了,既省電也噪聲小。對于建中妾口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引腳速度或許不夠,這時(shí)可以選用10M的GPIO引腳速度。對于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引腳速度顯然不夠了,需要選用50M的GPIO的引腳速度。GP口設(shè)為輸入時(shí),輸出驅(qū)動(dòng)電路與端口是斷開,所以輸出速度配置無意義。復(fù)位期間和剛復(fù)位后,復(fù)用功能未開啟,^。端口被配置成浮空輸入模式。所有端口都有外部中斷能力。為了使用外部中斷線,端口必須配置成輸入模式。GPIC口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。5、所有I/O口兼容CMOS和丁丁匕多數(shù)上??诩嫒?V電平。6、大電流驅(qū)動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。7、具有獨(dú)立的喚醒I/O口。8、很多上??诘膹?fù)用功能可以重新映射。8/179、GPIO口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。此功能非常有利于在程序跑飛的情況下保護(hù)系統(tǒng)中其他的設(shè)備,不會因?yàn)槟承㊣/O口的配置被改變而損壞—一如一個(gè)輸入口變成輸出口并輸出電流。二.推挽結(jié)構(gòu)一般是指兩個(gè)三極管分別受兩互補(bǔ)信號的控制,總是在一個(gè)三極管導(dǎo)通的時(shí)候另一個(gè)截止.要實(shí)現(xiàn)線與需要用OC(opencollect門電路如果輸出級的有兩個(gè)三極管,始終處于一個(gè)導(dǎo)通、一個(gè)截止的狀態(tài),也就是兩個(gè)三級管推挽相連,這樣的電路結(jié)構(gòu)稱為推拉式電路或圖騰柱(Totem-pole輸出電路(可惜,圖無法貼上)。當(dāng)輸出低電平時(shí),也就是下級負(fù)載門輸入低電平時(shí),輸出端的電流將是下級門灌入T4;當(dāng)輸出高電平時(shí),也就是下級負(fù)載門輸入高電平時(shí),輸出端的電流將是下級門從本級電源經(jīng)T3.D1拉出。這樣一來,輸出高低電平時(shí),T3一路和T4一路將交替工作,從而減低了功耗,提高了每個(gè)管的承受能力。又由于不論走哪一路,管子導(dǎo)通電阻都很小,使RC常數(shù)很小,轉(zhuǎn)變速度很快。因此,推拉式輸出級既提高電路的負(fù)載能力,又提高開關(guān)速度。供你參考。推挽電路是兩個(gè)參數(shù)相同的三極管或MOSFET,以推挽方式存在于電路中,各負(fù)責(zé)正負(fù)半周的波形放大任務(wù),電路工作時(shí),兩只對稱的功率開關(guān)管每次只有一個(gè)導(dǎo)通,所以導(dǎo)通損耗小效率高。輸出既可以向負(fù)載灌電流,也可以從負(fù)載抽取電流三.開漏電路在電路設(shè)計(jì)時(shí)我們常常遇到開漏(opendrain和開集(opencollect))iffi概念。所謂開漏電路概念中提到的“漏”就是指MOSFET的漏極。同理,開集電路中的“集”就是指三極管的集電極。開漏電路就是指以MOSFET的漏極為輸出的電路。一般的用法是會在漏極外部的電路添加上拉電阻。完整的開漏電路應(yīng)該由開漏器件和開漏上拉電阻組成。組成開漏形式的電路有以下幾個(gè)特點(diǎn):.利用外部電路的驅(qū)動(dòng)能力,減少IC內(nèi)部的驅(qū)動(dòng)。當(dāng)IC內(nèi)部MOSFET導(dǎo)通時(shí),驅(qū)動(dòng)電流是從外部的VCC流經(jīng)Rpull-upMOSFET到GND。IC內(nèi)部僅需很下的柵極驅(qū)動(dòng)電流。如圖1。.可以將多個(gè)開漏輸出的Pin連接到一條線上。形成“與邏輯”關(guān)系。如圖1,當(dāng)PIN_A、PIN_B、PIN)任意一個(gè)變低后,開漏線上的邏輯就為0了。這也是I2C,SMBus等總線判斷總線占用狀態(tài)的原理。.可以利用改變上拉電源的電壓,改變傳輸電平。如圖2,I的邏輯電平由電源丫“1決定,而輸出高電平則由丫“2決定。這樣我們就可以用低電平邏輯控制輸出高電平邏輯了。.開漏Pin不連接外部的上拉電阻,則只能輸出低電平因此對于經(jīng)典的51單片機(jī)的P0口而言,要想做輸入輸出功能必須加外部上拉電阻,否則無法輸出高電平邏輯)。.標(biāo)準(zhǔn)的開漏腳一般只有輸出的能力。添加其它的判斷電路,才能具備雙向輸入、輸出的能力。應(yīng)用中需注意:9/17.開漏和開集的原理類似,在許多應(yīng)用中我們利用開集電路代替開漏電路。例如,某輸入Pin要求由開漏電路驅(qū)動(dòng)。則我們常見的驅(qū)動(dòng)方式是利用一個(gè)三極管組成開集電路來驅(qū)動(dòng)它,即方便又節(jié)省成本。如圖3。.上拉電阻Rpull-u的阻值決定了邏輯電平轉(zhuǎn)換的沿的速度。阻值越大,速度越低功耗越小。反之亦然。Push-Pul輸出就是一般所說的推挽輸出,在CMOS電路里面應(yīng)該較CMOS輸出更合適,應(yīng)為在CMOS里面的口口5卜-口山]輸出能力不可能做得雙極那么大。輸出能力看IC內(nèi)部輸出極N管P管的面積。和開漏輸出相比,push-pull的高低電平由葭的電源低定,不能簡單的做邏輯操作等。push-pul是現(xiàn)在CMOS電路里面用得最多的輸出級設(shè)計(jì)方式。at91rm9200GPI模擬126妾口時(shí)注意??!四.0^OD集電極開路門集電極開路OC或源極開路OD)open-drair是漏極開路輸出的意思,相當(dāng)于集電極開路(open-collect輸出,即廿中的集電極開路(oc)輸出。一般用于線或、線與,也有的用于電流驅(qū)動(dòng)。open-drair是對mos管而言,open-collect是對雙極型管而言,在用法上沒啥區(qū)別。開漏形式的電路有以下幾個(gè)特點(diǎn):.利用外部電路的驅(qū)動(dòng)能力,減少IC內(nèi)部的驅(qū)動(dòng)?;蝌?qū)動(dòng)比芯片電源電壓高的負(fù)載. 可以將多個(gè)開漏輸出的Pin連接到一條線上。通過一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關(guān)系。這也是I2CSMBus等總線判斷總線占用狀態(tài)的原理。如果作為圖騰輸出必須接上拉電阻。接容性負(fù)載時(shí),下降延是芯片內(nèi)的晶體管,是有源驅(qū)動(dòng),速度較快;上升延是無源的外接電阻,速度慢。如果要求速度高電阻選擇要小,功耗會大。所以負(fù)載電阻的選擇要兼顧功耗和速度。.可以利用改變上拉電源的電壓,改變傳輸電平。例如加上上拉電阻就可以提供TTL/CMOS電平輸出.開漏Pin不連接外部的上拉電阻,則只能輸出低電平。一般來說,開漏是用來連接不同電平的器件,匹配電平用的。.正常的CMOS輸出級是上、下兩個(gè)管子,把上面的管子去掉就是OPEN-DRAIN了。這種輸出的主要目的有兩個(gè):電平轉(zhuǎn)換和線與。 由于漏級開路,所以后級電路必須接一上拉電阻,上拉電阻的電源電壓就可以決定輸出電平。這樣你就可以進(jìn)行任意電平的轉(zhuǎn)換了。.線與功能主要用于有多個(gè)電路對同一信號進(jìn)行拉低操作的場合,如果本電路不想拉低,就輸出高電平,因?yàn)镺PEN-DRAIN上面的管子被拿掉,高電平是靠外接的上拉電阻實(shí)現(xiàn)的。(而正常的CMOS輸出級,如果出現(xiàn)一個(gè)輸出為高另外一個(gè)為低時(shí),等于電源短路。).OPEN-DRAIN提供了靈活的輸出方式,但是也有其弱點(diǎn),就是帶來上升沿的延時(shí)。因?yàn)樯仙厥峭ㄟ^外接上拉無源電阻對負(fù)載充電,所以當(dāng)電阻選擇小時(shí)延時(shí)就小,但功耗大;反之延時(shí)大功耗小。所以如果對延時(shí)有要求,則建議用下降沿輸出。10/17五.線或邏輯與線與邏輯在一個(gè)結(jié)點(diǎn)線)上,連接一個(gè)上拉電阻到電源VCC或VDD和n個(gè)NPN或NMOS晶體管的集電極C或漏極D,這些晶體管的發(fā)射極£或源極S都接到地線上,只要有一個(gè)晶體管飽和,這個(gè)結(jié)點(diǎn)線)就被拉到地線電平上.因?yàn)檫@些晶體管的基極注入電流(NPN)或柵極加上高電平(NMOS),晶體管就會飽和,所以這些基極或柵極對這個(gè)結(jié)點(diǎn)線)的關(guān)系是或非NOR邏輯.如果這個(gè)結(jié)點(diǎn)后面加一個(gè)反相器,就是或OR邏輯.注:個(gè)人理解:線與,接上拉電阻至電源。(~A)&(~B)=~(A+B)由公式較容易理解線與此概念的由來;如果用下拉電阻和PNP或PMOS管就可以構(gòu)成與非NAND邏輯,或用負(fù)邏輯關(guān)系轉(zhuǎn)換與/或邏輯.注:線或,接下拉電阻至地。(~A)+(-B)=~(AB);這些晶體管常常是一些邏輯電路的集電極開路OC或源極開路??谳敵龆?這種邏輯通常稱為線與/線或邏輯,當(dāng)你看到一些芯片的OC或OD輸出端連在一起,而有一個(gè)上拉電阻時(shí),這就是線或/線與了,但有時(shí)上拉電阻做在芯片的輸入端內(nèi).順便提示如果不是OC或OD芯片的輸出端是不可以連在一起的,總線8^上的雙向輸出端連在一起是有管理的,同時(shí)只能有一個(gè)作輸出,而其他是高阻態(tài)只能輸入STM32引腳說明GPIO是通用輸入/輸出端口的簡稱,是STM32可控制的引腳。GPIO的引腳與外部硬件設(shè)備連接,可實(shí)現(xiàn)與外部通訊、控制外部硬件或者采集外部硬件數(shù)據(jù)的功能。STM32F103ZET6芯片為144腳芯片,包括7個(gè)通用目的的輸入/輸出口(GPI0)組,分別為GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同時(shí)每組GPIO口組有16個(gè)GPIO口。通常簡略稱為PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x為0-15。STM32的大部分引腳除了當(dāng)GPIO使用之外,還可以復(fù)用位外設(shè)功能引腳(比如串口),這部分在【STM32】STM32端口復(fù)用和重映射(AFIO輔助功能時(shí)鐘)中有詳細(xì)的介紹。GPIO基本結(jié)構(gòu)每個(gè)GPIO內(nèi)部都有這樣的一個(gè)電路結(jié)構(gòu),這個(gè)結(jié)構(gòu)在本文下面會具體介紹。11/17
〈償?shù)州斎?復(fù)用功倭輸入推槐■開疆或關(guān)所萍心室健生一祠怒痘TTL〈償?shù)州斎?復(fù)用功倭輸入推槐■開疆或關(guān)所萍心室健生一祠怒痘TTL門特基
觸發(fā)器L穩(wěn)耳卵劉磊
輸疝族詁冢輸出
控狀這邊的電路圖稍微提一下:保護(hù)二極管:10引腳上下兩邊兩個(gè)二極管用于防止引腳外部過高、過低的電壓輸入。當(dāng)引腳電壓高于VDD時(shí),上方的二極管導(dǎo)通;當(dāng)引腳電壓低于VSS時(shí),下方的二極管導(dǎo)通,防止不正常電壓引入芯片導(dǎo)致芯片燒毀。但是盡管如此,還是不能直接外接大功率器件,須加大功率及隔離電路驅(qū)動(dòng),防止燒壞芯片或者外接器件無法正常工作。P-MOS管和N-MOS管:由P-MOS管和N-MOS管組成的單元電路使得GPIO具有“推挽輸出”和“開漏輸出”的模式。這里的電路會在下面很詳細(xì)地分析到。丁丘肖特基觸發(fā)器:信號經(jīng)過觸發(fā)器后,模擬信號轉(zhuǎn)化為0和1的數(shù)字信號。但是,當(dāng)GPIO引腳作為ADC采集電壓的輸入通道時(shí),用其“模擬輸入”功能,此時(shí)信號不再經(jīng)過觸發(fā)器進(jìn)行TTL電平轉(zhuǎn)換。ADC外設(shè)要采集到的原始的模擬信號。這里需要注意的是,在查看《STM32中文參考手冊V10》中的GPIO的表格時(shí),會看到有“FP一列,這代表著這個(gè)GPIO口時(shí)兼容3.3V和5丫的;如果沒有標(biāo)注“FT”,就代表著不兼容5V。STM32的GPIO工作方式GPIO支持4種輸入模式(浮空輸入、上拉輸入、下拉輸入、模擬輸入)和4種輸出模式(開漏輸出、開漏復(fù)用輸出、推挽輸出、推挽復(fù)用輸出)。同時(shí),GPIO還支持三種最大翻轉(zhuǎn)速度(2MHz.10MHz、50MHz)。每個(gè)I/O口可以自由編程,但I(xiàn)/O口寄存器必須按32位字被訪問。GPIO_Mode_AIN模擬輸入GPIO_Mode_IN_FLOATING浮空輸入GPIO_Mode_IPD下拉輸入GPIO_Mode_IPU上拉輸入GPIO_Mode_Out_OD開漏輸出GPIO_Mode_Out_PP推挽輸出12/17
GPIO_Mode_AF_OD復(fù)用開漏輸出GPIO_Mode_AF_PP復(fù)用推挽輸出下面將具體介紹GPIO的這八種工作方式:浮空輸入模式浮空輸入模式浮空輸入模式下,上。端口的電平信號直接進(jìn)入輸入數(shù)據(jù)寄存器。也就是說,1/。的電平狀態(tài)是不確定的,完全由外部輸入決定;如果在該引腳懸空(在無信號輸入)的情況下,讀取該端口的電平是不確定的。上拉輸入模式為用功能向人上拉電阻來自片上外設(shè)鎮(zhèn)加至片上*外設(shè)般地.寫貓IB控制電路——③衿A檄掘甯存器TTL上拉輸入模式為用功能向人上拉電阻來自片上外設(shè)鎮(zhèn)加至片上*外設(shè)般地.寫貓IB控制電路——③衿A檄掘甯存器TTL曲匣心上拉輸入模式下,上。端口的電平信號直接進(jìn)入輸入數(shù)據(jù)寄存器。但是在上。端口懸空(在無信號輸入)的情況下,輸入端的電平可以保持在高電平;并且在1/。^^口輸入為低電平的時(shí)候,輸入端的電平也還是低電平。13/17下拉輸入模式.蜀寫來自片上外設(shè)橫跳至月上*外設(shè)怏塊.相A更用功耗徜入段抵摘入輸冊控制電翡下拉電阻7\保護(hù).蜀寫來自片上外設(shè)橫跳至月上*外設(shè)怏塊.相A更用功耗徜入段抵摘入輸冊控制電翡下拉電阻7\保護(hù)丁二根管n用力器輸出下拉輸入模式下,I/O端口的電平信號直接進(jìn)入輸入數(shù)據(jù)寄存器。但是在I/O端口懸空(在無信號輸入)的情況下,輸入端的電平可以保持在低電平;并且在1/0端口輸入為高電平的時(shí)候,輸入端的電平也還是高電平。模擬輸入模式②至甘匕3皿一外設(shè)林訓(xùn)彳支用功一購入r|TTL褪圉特觸發(fā)器|輸入生詢器輸入數(shù)據(jù)寄存器來自片上外設(shè)模塊②至甘匕3皿一外設(shè)林訓(xùn)彳支用功一購入r|TTL褪圉特觸發(fā)器|輸入生詢器輸入數(shù)據(jù)寄存器來自片上外設(shè)模塊升次轆出控制山路模擬輸入模式下,1/。端口的模擬信號(電壓信號,而非電平信號)直接模擬輸入到片上外設(shè)模塊,比如ADC模塊等等。開漏輸出模式14/17便國儡入復(fù)用功能輸入至片上*外設(shè)根塊,T讀解小百片上外設(shè)模址立用功證輸出P-MOS?輸入刪渤器17便國儡入復(fù)用功能輸入至片上*外設(shè)根塊,T讀解小百片上外設(shè)模址立用功證輸出P-MOS?輸入刪渤器17-—TTR^j特觸犬既制巾一都M-MDS③.概管開啟狀態(tài)模旭皤人更用M能城人讀,寫位設(shè)置,涓除寄存器輸人數(shù)據(jù)富存器來自片k外設(shè)模塊觸發(fā)3s輸入驊動(dòng)舐「輸出施劫器輸出腔模旭皤人更用M能城人讀,寫位設(shè)置,涓除寄存器輸人數(shù)據(jù)富存器來自片k外設(shè)模塊觸發(fā)3s輸入驊動(dòng)舐「輸出施劫器輸出腔開漏輸出模式下,通過設(shè)置位設(shè)置/清除寄存器或者輸出數(shù)據(jù)寄存器的值,途經(jīng)N-MOS管,最終輸出到上。端口。這里要注意N-MOS管,當(dāng)設(shè)置輸出的值為高電平的時(shí)候,N-MOS管處于關(guān)閉狀態(tài),此時(shí)上。端口的電平就不會由輸出的高低電平?jīng)Q定,而是由上。端口外部的上拉或者下拉決定;當(dāng)設(shè)置輸出的值為低電平的時(shí)候,N-MOS管處于開啟狀態(tài),此時(shí)上。端口的電平就是低電平。同時(shí),上。端口的電平也可以通過輸入電路進(jìn)行讀??;注意,上。端口的電平不一定是輸出的電平。開漏復(fù)用輸出模式開漏復(fù)用輸出模式,與開漏輸出模式很是類似。只是輸出的高低電平的來源,不是讓CPU直接寫輸出數(shù)據(jù)寄存器,取而代之利用片上外設(shè)模塊的復(fù)用功能輸出來決定的。推挽輸出模式15/17
『開啟狀態(tài)至片上…人外設(shè)糧塊一復(fù)用功能,久 1VCC 『開啟狀態(tài)至片上…人外設(shè)糧塊一復(fù)用功能,久 1VCC I什俁『 ITTL施密特觸發(fā)器輸出敢訴寄存器V5S輸出控P-MOS于駕管推挽輸出模式下,通過設(shè)置位設(shè)置/清除寄存器或者輸出數(shù)據(jù)寄存器的值,途經(jīng)P-MOS管和N-MOS管,最終輸出到上。端口。這里要注意P-MOS管和N-MOS管,當(dāng)設(shè)置輸出的值為高電平的時(shí)候,P-MOS管處于開啟狀態(tài),N-MOS管處于關(guān)閉狀態(tài),此時(shí)上。端口的電平就由P-MOS管決定:高電平;當(dāng)設(shè)置輸出的值為低電平的時(shí)候,P-MOS管處于關(guān)閉狀態(tài),N-MOS管處于開啟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年種豬銷售合同書范本
- 蘇州銀行外匯借款合同格式
- 齒輪殼鉆模板課程設(shè)計(jì)
- 2024年事故車輛推修協(xié)議書模板
- 合作放養(yǎng)養(yǎng)豬合同范本
- 2024年美容運(yùn)輸配送合同范本
- 汽車銷售培訓(xùn)協(xié)議
- 合肥勞動(dòng)合同書2024年
- 全面房屋裝修合同模板
- 成都二手房交易合同2024年
- 期中測試卷-2024-2025學(xué)年統(tǒng)編版語文二年級上冊
- GB/T 44421-2024矯形器配置服務(wù)規(guī)范
- 2024年新高考Ⅰ卷、Ⅱ卷、甲卷詩歌鑒賞試題講評課件
- 10以內(nèi)口算題每頁50道
- 健康科普宣教課件
- 內(nèi)控評價(jià)各部門需提供的資料
- 充電樁施工方案
- 煤礦井下主變電所安裝安全技術(shù)措施
- 《呼吸科肺部查體》PPT課件.ppt
- 電氣化區(qū)段的軌道電路
- 超市商品陳列藝術(shù)培訓(xùn)課件
評論
0/150
提交評論