其實GPIO這個片上外設的功能: 用于控制IO引腳。
CPU就如同大腦,而這些片上外設就如同四肢一樣的關系 如圖
——————————————————————————————
OK類比了以上 其實GPIO是有 八種工作模式的
這八種工作模式 因為GPIO是面向IO引腳的, 所以每一個引腳都可以設置 這八種不同的工作模式
?紅色內部可以看作我們的STM芯片 然后 小方塊 就是引腳的另一端。 這么一下子 我們就能看出有關輸出和輸出的感覺了
——————————————————————————————
OK 那么看到輸出
發現 除了通用? 復用|? 就是推挽 開漏|
那么我們通過通用的手冊 進行看看 這個 推挽和 開漏的區別與聯系。
第八章有關 通用復用IO引腳的圖
那么這樣的IO口基本就有37個 A16 B16 C3 D2
然后 上半部分就是輸入, 下半部分是輸出。
我們就是輸出的 所以我們簡化一下有關 輸出的部分。
刪除掉那個位設置....寄存器
然后下面的 輸出數據寄存器? 往回推 就是CPU進行讀寫
——————————————————————
這時候來看
1 推挽模式? ? ?他是交替進行的 Pmos管推? ?Nmos管拉。
交替閉合的? 可以看出來 如果我們PMOS是通的 那么就是 出來高電平 那么電流肯定是往外的。
相反 Nmos開啟的話 我們就是電流往內部的。
所以通過我們寫0 或者寫1 就可以選擇是Nmos 還是Pmos了。
————————————————————————
2開漏模式
對于開漏 來說 就是Pmos一直保持開路 為什么呢
看下面這個 其實發現沒有 對于下面這個 他的D 也就是漏極 其實就是Pmos的下面的部分 就是斷路了。
所以就是開漏
所以這個模式下 我們寫0, 下面導通 正常是低電壓 電流可以往里來。
但是 如果我們寫1 上面本身就開路 下面也斷開了。 這下 IO口跟STM32沒有聯系到了 電流為0
成 高阻態趨勢
————————————————————————
通用 還是 復用
其實 通用 就是CPU直接進行控制, 而復用? 就是其他的片外設進行控制、
比如這里就是通過 串口模塊 串口進行接管了 去控制IO口 就不是純CPU單純控制了