日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32 IO口的八种模式使用小结

發布時間:2025/3/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 IO口的八种模式使用小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/** * @brief Configuration Mode enumeration */typedef enum { GPIO_Mode_AIN = 0x0, //模擬輸入GPIO_Mode_IN_FLOATING = 0x04, //浮空輸入GPIO_Mode_IPD = 0x28, //下拉輸入GPIO_Mode_IPU = 0x48, //上拉輸入GPIO_Mode_Out_OD = 0x14, //開漏輸出GPIO_Mode_Out_PP = 0x10, //推挽輸出GPIO_Mode_AF_OD = 0x1C, //復用開漏輸出GPIO_Mode_AF_PP = 0x18 //復用推挽輸出 }GPIOMode_TypeDef;
  • 推挽輸出
  • :可以輸出高電平,也可以輸出低電平,結構是兩個三極管分別受兩個互補信號的控制,總是在一個三極管導通的時候另一個截止,高電平由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口的八种模式使用小结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。