概括來說,io的功能模式大致可以分為輸入、輸出以及輸入輸出雙向三大類。其中作為基本輸入io,相對比較簡單,主要涉及的知識點就是高阻態;作為輸出io,相比與輸入複雜一些,工作模式主要有開漏(open drain)模式和推挽(push-pull)模式;對於輸入輸出io,容易產生疑惑的地方是準雙向和雙向埠的區別。
輸入io
基本輸入電路的型別大致可以分為三類:基本輸入io電路,施密特觸發輸入電路以及弱上拉輸入電路;對input引腳的要求就是高阻(高阻與三態是同乙個概念)。
基本輸入io電路如下圖所示:
其中的緩衝器u1是具有控制輸入端,且具有高阻抗特性的三態緩衝器;通俗地說就是這個緩衝器對外來說是高阻的, 相當於在控制輸入端不使能的情況下,物理引腳與內部匯流排之間是完全隔離的,完全不會影響內部電路;而控制輸入端的作用就是可以發出讀pin狀態的操作指令,其過程如下圖所示:
這種基本電路的乙個缺點是在讀取外部訊號的跳變沿時會出現抖動,如下圖所示:
施密特觸發輸入電路就解決了這種抖動問題,其經過施密特觸發器後的訊號如下圖所示:
對於輸入電路還存在乙個問題,就是當輸入懸空(floating)的時候,輸入引腳上任何的雜訊都會改變輸入端檢測到的電平,如下圖所示:
為了解決這個問題,可以在輸入引腳處加乙個弱上拉電阻,如圖所示:
輸出io
io輸出店裡最主要的兩種模式分別是推挽輸出(push-pull output)和開漏輸出(open drain output).
推挽輸出(push-pull output)
推挽輸出的結構是由兩個三極體或者mos管受到互補訊號的控制,兩個管子始終乙個處於截止,另外乙個處於導通的狀態,如下圖所示:
推挽輸出的最大特點是可以真正輸出高電平和低電平,在兩種電平下都具有驅動能力。
開漏輸出(open drain output)
對於開漏輸出和推挽輸出的區別最普遍的說法就是開漏輸出無法真正輸出高電平,即高電平時沒有驅動能力,需要借助外部上拉電阻完成對外驅動。
嵌入式檔案輸入 輸出函式小結
基本i o函式 fopen 開啟檔案,用完後一定要關閉。file fp fp fopen 檔名 使用檔案方式 使用檔案方式 r 讀 r 讀寫 w 只寫 w 讀寫 a 追加 a 追加讀寫 rb 唯讀 二進位制 rb 讀寫 二進位制 wb 只寫 二進位制 wb 讀寫二進位制 ab 追加 二進位制 ab ...
2,嵌入式Linux之GPIO
2,嵌入式linux之gpio 1,點燈 1 看懂你所用的開發板的原理圖 產看led和gpio管腳是怎麼接線的如圖 2 通過s3c2440晶元控制暫存器配置gpf4 gpf5 gpf6為輸入引腳 來點亮 上圖的led燈 檢視s3c2440晶元手冊 3 配置gpio 使得gpf4 gpf5 gpf6 ...
STM32之GPIO輸入輸出
gpio的輸出 背景 應用在點亮led。led串聯電阻再上拉,另一端與gpio口相連。因此,gpio輸出高電平則led滅,輸出低電平則led亮。第一步工作是初始化gpio,使能外設時鐘,因為gpio是掛載在apb2中線上的。然後對gpio inittypedef結構體進行初始化,設定gpio pin...