STM32 IO口的八种模式使用小结
:可以輸出高電平,也可以輸出低電平,結構是兩個三極管分別受兩個互補信號的控制,總是在一個三極管導通的時候另一個截止,高電平由IC電源確定;
推挽電路是兩個參數相同的三極管或MOSFET,以推挽的方式存在于電路中,各負責正負半周的波形放大任務,電路工作時兩只對稱的功率開關管每次只有一個導通,所以損耗小效率高,輸出既可以向負載灌電流也可以向負載抽取電流;
開漏輸出
輸出端相當于三極管的集電極,要得到高電平狀態需要使用上拉電阻才行,適用于做電流型的驅動,其吸收能力相對較強(一般20ma以內)
開漏的特點:
利用外部電流的驅動能力,減少IC內部的驅動,當IC內部的MOSFET導通的時候,驅動電流是從外部的VCC流經 R pull-up,MOSFET到GND。IC內部僅需要很小的柵極驅動電流。
一般來說 開漏是用來連接不同電平的元器件,匹配電平使用的。因為開漏輸出的引腳在不連接外部的上拉電阻的時候,只能輸出低電平,如果需要同時具備輸出高電平的功能需要加上上拉電阻,很好的一個有點就是可以通過改變上拉電源的電壓,便可以改變輸出電平,比如加上上拉電阻就可以提供TTL/CMOS電平的輸出等,(上拉電阻的組織決定了邏輯電平轉換速度,阻值越大,速度越低功耗越小,所以負載電阻的阻值要結合實際情況選優);
OPEN-DRAIN 提供了靈活的輸出方式,但是也有弱點,就是在上升沿的時候會有延時,因為上升沿是通過外接無源上拉電阻對負載進行充電實現的,所以當電阻選擇小的時候延時就小,但是功耗大,反之延時大功耗小,如果對延時有要求,則建議使用下降沿輸出。
可以將多個開漏輸出的Pin,連接到一條線上,通過一個上拉電阻,在不增加任何器件的情況下,形成”與邏輯”關系。這也是I2C,SMBus等總線判斷總線占用的原理;浮空輸入
由于浮空輸入一般多用于外部按鍵輸入,在浮空輸入的狀態下,IO口的電平狀態是不確定的,如果在該引腳懸空的,讀取端口的電平狀態是不確定的復用開漏輸出、復用推挽輸出:可以理解為GPIO被作為第二功能使用的時候的配置情況;
- 總結:
- 浮空輸如:可以做Key識別 ,RX
- 上拉輸入 內部有上電阻
- 下拉輸入 內部有下拉電阻
- 模擬輸入 應用ADC模擬輸入,或者低電平狀態下有電
- 開漏輸出 IO口輸出0接地 IO口輸出1 懸空 需要上拉電阻才能實現輸出高電平,可以讀取IO輸入電平的變化實現C51的IO的雙向功能;
- 推挽輸出 IO輸出0接地 IO輸出1接VCC 讀輸入值是未知的
- 復用功能推挽輸出 片內外設功能 (I2C的SCL,SDA USART TX)
- 復用開漏輸出 片內外設功能 (TX1,MOSI,MISO,SCK,SS)
使用的實例:
模擬I2C使用開漏輸出的時候,接上拉電阻,能夠實現0和1的輸出,讀值的時候先GPIO_SetBits(GPIOB,GPIO_Pin_0); 拉高,然后在讀取IO口的值,GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
如果無上拉電阻,IO口默認是高電平;需要讀取IO口的值,可以使用帶上拉電阻的IPU和浮空輸入和開漏輸出
通常的五種方法使能一個引腳的IO口,作為普通GPIO輸入輸出:根據需要配置引腳,同時不要使能該引腳的多有的復用功能模塊
作為普通模擬輸入:配置該IO口為模擬輸入模式,同時不要使能該引腳對應的所有的復用功能模塊
作為內置外設的輸入的設置:根據需要配置該引腳為 浮空輸入 帶弱上拉輸入或者帶弱下拉輸入,同時使能該引腳對應的某個復用功能模塊;
作為內置外設輸出:根據需要配置該引腳為復用推挽輸出或則復用開漏輸出,同時使能該引腳對用德爾復用功能模塊
總結
以上是生活随笔為你收集整理的STM32 IO口的八种模式使用小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专题:工业大数据
- 下一篇: 王华(1985-),男,中国人民大学硕士