1 GPIO工作原理
外界二進制信息(數字量)要被CPU處理,要給存儲器存放,就需要外界信息源與兩者之間的交換接口,這樣的交換接口若用來進行通用目的數字量的輸入輸出,就被稱為通用數字量輸入/輸出接口,簡稱GPIO。
F28335的88路GPIO被分為3組
A組:GPIO0 - GPIO31 只能配置INT1-INT3
B組:GPIO32 - GPIO63 配置INT4-INT12
C組:GPIO64 - GPIO87
2 GPIO的寄存器
2.1 GPIOMux(復用開關)寄存器 16位
F28335 DSP有多達88個GPIO口,對應着芯片引出的88個引腳,隨着芯片的封裝與尺寸的確定,引腳數目是有限的,所以這88個引腳多數都是功能復用的,即可以靈活配置為輸入引腳,也可以靈活配置為輸出引腳,即可以作為通用I/O引腳,也可以作為特殊功能口(如SCI、SPI、ECAN等),非常靈活,用戶根據需要,可以通過GPIOMUX(輸入輸出多路選擇器,復用開關)寄存器來進行相關配置。
GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 0 將GPIO54設為數字I/O功能
GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1 將GPIO54設為外設功能
2.2 GPIODIR(方向)寄存器 32位
如果將這些引腳選擇數字量I/O模式,可以通過方向寄存器GPxDIR配置數字量I/O的方向,即是作為輸入引腳還是作為輸出引腳。
GpioCtrlRegs.GPBDIR.bit.GPIO54 = 0 將GPIO54設為輸入功能
GpioCtrlRegs.GPBDIR.bit.GPIO54 = 1 將GPIO54設為輸出功能
2.3 GPxQUAL(量化)寄存器 32位
在GPIO作為數字I/O且位輸入模式時,就會涉及到采樣准確與否的問題,如果在輸入信號毛刺較多的情況下,如果直接讀取很可能會得到錯誤的信號。因此我們需要對輸入的信號進行量化采樣。
在這里插入圖片描述
上圖就是一個只有信號保持6個系統時鍾周期,才確認信號是高還是低電平的操作。
所以我們通過結合實際需求來設置這個量化寄存器GPxQUAL,得到我們所需要的准確信號,一般與GPxQSEL配合使用。
2.4 電平操作寄存器
GPxDAT寄存器:用於對I/O口置1或0,但是反應速度比較慢,一般在信號輸入的時候用,輸出的時候用下面三個。
GPxSET寄存器: 用於對I/O置1,速度快
GPxCLEAR寄存器:用於對I/O清0
注意這里的GPxSET和GPxCLEAR都只能置1,不能置0,置1功能有效
GPxTOOGLE寄存器: 用於對I/O的電平翻轉
原文鏈接:https://blog.csdn.net/sy243772901/article/details/83015694