stm32的IO口電路如上圖所示:
所謂推挽輸出:在輸出高電平時,P-MOS管導(dǎo)通;低電平時,N-MOS管導(dǎo)通。兩個管子輪流導(dǎo)通,一個負責(zé)灌電流,一個負責(zé)拉電流。推挽輸出的低電平為0v,高電平為3.3V.
開漏輸出:輸出低電平時,N-MOS管導(dǎo)通,使輸出接地,若控制輸出1(無法直接輸出高電平),則既不輸出高電平,也不輸出低電平,為高阻態(tài)。正常使用時必須外接上拉電阻。
推挽輸出一般用于輸出電平為0V和3.3V的場合,而開漏輸出一般用于電平不匹配的場合,如需要輸出5V,就需要在外部接一個上拉電阻,電源為5V。