GPIO的輸入工作模式1——輸入浮空模式:
GPIO_Mode_IN_FLOATING =0x04
工作原理:配置完相應寄存器為此工作模式后,高低電平信號通過1處的IO口輸入進去,由於寄存器配置了的緣故VDD處上拉和下拉均為斷開狀態。通過TTL施密特觸發器后進入到3(輸入數據寄存器)中,然后由MCU將數據讀取。
適用場景:一般多用於外部按鍵輸入;
GPIO的輸入工作模式2——輸入上拉模式:
GPIO_Mode_IPU =0x48
工作原理:配置完相應寄存器為此工作模式后,高低電平信號通過1處的IO口輸入進去,由於寄存器配置了的緣故VDD處上拉電阻(30K~50K)處於閉合狀態。通過TTL施密特觸發器后進入到3(輸入數據寄存器)中,然后由MCU將數據讀取。
適用場景:
GPIO的輸入工作模式3——輸入下拉模式:
GPIO_Mode_IPD =0x28
工作原理:配置完相應寄存器為此工作模式后,高低電平信號通過1處的IO口輸入進去,由於寄存器配置了的緣故VSS處下拉電阻( )處於閉合狀態。通過TTL施密特觸發器后進入到3(輸入數據寄存器)中,然后由MCU將數據讀取。
適用場景:
GPIO的輸入工作模式4——輸入模擬模式:
GPIO_Mode_AIN =0x0
工作原理:配置完相應寄存器為此工作模式后,模擬電壓信號通過1處的IO口輸入進去,由於寄存器配置了的緣故VDD處上拉和下拉電阻於斷開狀態。TTL施密特觸發器也被關閉,一直將模擬電壓信號輸入至片上外設模塊AD轉換器,然后由MCU將數據讀取。
適用場景:應用ADC模擬輸入;低功耗下省電
GPIO的輸出工作模式1——開漏輸出模式:
GPIO_Mode_Out_OD=0x14
工作原理:配置完相應寄存器為此工作模式后,MCU將要發送的數據位設置/清除寄存器和輸出數據寄存器將高低電平信號發送到輸出控制電路中,當電平為0時輸出控制電路向N-MOS管給出信號,N-MOS管導通,將IO口電平拉低,輸出低電平;當電平為1時,MOS管截止,不向IO口給出高低電平信號,IO口此時電平信號由外部電路中的上拉電阻拉到電源電壓。
適用場景:
1、這種方式適合在連接的外設電壓比單片機電壓低的時候
2、一般來說,開漏是用來連接不同電平的器件,匹配電平用的,因為開漏引腳不連 接外部的上拉電阻時,只能輸出低電平,如果需要同時具備輸出高電平的功 能,則需要接上拉電阻,很好的一個優點是通過改變上拉電源的電壓,便可以 改變傳輸電平。比如加上上拉電阻就可以提供TTL/CMOS電平輸出等。(上拉 電阻的阻值決定了邏輯電平轉換的沿的速度 。阻值越大,速度越低功耗越小, 所以負載電阻的選擇要兼顧功耗和速度。)
GPIO的輸出工作模式2——復用開漏輸出模式:
GPIO_Mode_AF_OD=0x1c
工作原理: 理解為GPIO口被用作第二功能時的配置情況,工作原理類似於“開漏輸出模式”,只是要輸出的電平信號來源不是mcu,而是復用功能輸出通道,比如片上外設模塊。
適用場景:
GPIO的輸出工作模式3——推挽輸出模式:
GPIO_Mode_Out_PP=0x10
工作原理:配置完相應寄存器為此工作模式后,MCU將要發送的數據位設置/清除寄存器和輸出數據寄存器將高低電平信號發送到輸出控制電路中,當電平為0時輸出控制電路向N-MOS管給出信號,N-MOS管導通,P-MOS管截止,將IO口電平拉低,輸出低電平;當電平為1時,P-MOS管導通,N-MOS管截止,將IO口電平拉高,輸出高電平,與此同時,IO口的高低電平狀態可通過TTL施密特觸發器后進入到3(輸入數據寄存器)中,然后由MCU將IO口讀取。
適用場景:
GPIO的輸出工作模式3——復用推挽輸出模式:
GPIO_Mode_AF_PP=0x18
工作原理:理解為GPIO口被用作第二功能時的配置情況,工作原理類似於“推挽輸出模式”,只是要輸出的電平信號來源不是mcu,而是復用功能輸出通道,比如片上外設模塊。