STM32的8種IO口的模式
阿新 • • 發佈:2019-01-27
在STM32中選用IO模式
1、浮空輸入GPIO_IN_FLOATING ——浮空輸入,可以做KEY識別,RX1
2、帶上拉輸入GPIO_IPU——IO內部上拉電阻輸入
3、帶下拉輸入GPIO_IPD—— IO內部下拉電阻輸入
4、模擬輸入GPIO_AIN ——應用ADC模擬輸入,或者低功耗下省電
5、開漏輸出GPIO_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。當輸出為1時,IO口的狀態由上拉電阻拉高電平,但由於是開漏輸出模式,這樣IO口也就可以由外部電路改變為低電平或不變。可以讀IO輸入電平變化,實現C51的IO雙向功能
6、推輓輸出GPIO_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的
7、複用功能的推輓輸出GPIO_AF_PP ——片內外設功能(I2C的SCL,SDA)
8、複用功能的開漏輸出GPIO_AF_OD——片內外設功能(TX1,MOSI,MISO.SCK.SS)
七、STM32設定例項:
1、模擬I2C使用開漏輸出_OUT_OD,接上拉電阻,能夠正確輸出0和1;讀值時先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然後可以讀IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
2、如果是無上拉電阻,IO預設是高電平;需要讀取IO的值,可以使用帶上拉輸入_IPU和浮空輸入_IN_FLOATING和開漏輸出_OUT_OD;
1、浮空輸入GPIO_IN_FLOATING ——浮空輸入,可以做KEY識別,RX1
2、帶上拉輸入GPIO_IPU——IO內部上拉電阻輸入
3、帶下拉輸入GPIO_IPD—— IO內部下拉電阻輸入
4、模擬輸入GPIO_AIN ——應用ADC模擬輸入,或者低功耗下省電
5、開漏輸出GPIO_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。當輸出為1時,IO口的狀態由上拉電阻拉高電平,但由於是開漏輸出模式,這樣IO口也就可以由外部電路改變為低電平或不變。可以讀IO輸入電平變化,實現C51的IO雙向功能
6、推輓輸出GPIO_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的
7、複用功能的推輓輸出GPIO_AF_PP ——片內外設功能(I2C的SCL,SDA)
8、複用功能的開漏輸出GPIO_AF_OD——片內外設功能(TX1,MOSI,MISO.SCK.SS)
七、STM32設定例項:
1、模擬I2C使用開漏輸出_OUT_OD,接上拉電阻,能夠正確輸出0和1;讀值時先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然後可以讀IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
2、如果是無上拉電阻,IO預設是高電平;需要讀取IO的值,可以使用帶上拉輸入_IPU和浮空輸入_IN_FLOATING和開漏輸出_OUT_OD;