rk3399 GPIO的操作方法 RK3399 GPIO分為4個大組 0 ~ 4,每個大組分為4個小組(A,B,C,D),比如GPIO0 有 A,B,C,D四個小組,每個小組有A0~A7個gpio 一個GPIO需要三類功能支持:gpio時鐘,gpio輸入輸出,這個pin要設置為gpio功能(復用) ...
rk3399 GPIO的操作方法
-
RK3399 GPIO分為4個大組 0 ~ 4,每個大組分為4個小組(A,B,C,D),比如GPIO0 有 A,B,C,D四個小組,每個小組有A0~A7個gpio
一個GPIO需要三類功能支持:gpio時鐘,gpio輸入輸出,這個pin要設置為gpio功能(復用)
-
GPIO寄存器介紹
數據寄存器,用來設置某一組 (A,B,C,D)的輸出高電平還是低電平,Bit0 對應A0,bit7 對應A7,bit8 對應B0,bit16 對應C0,bit24對應D0 以此類推
方向寄存器,用來設置某個引腳方向輸入/輸出,Bit0 對應A0,bit7 對應A7,bit8 對應B0,bit16 對應C0,bit24對應D0 以此類推
讀輸入寄存器,用來讀取某個寄存器的輸入電平。
-
GPIO時鐘配置CRU
CRU_CLKGATE_CON31 寄存器第3,4,5為分別設置GPIO2~4時鐘
PMUCRU_CLKGATE_CON1 用來設置GPIO0和1的時鐘
註意:這些寄存器都有一個 write_mask 位
如果需要設置這個寄存器位0, 要先寫入write_mask bit16寫入1,才可以給對應的寄存器位寫值。如果要設置位3,要先寫write_mask位bit19寫入1才可以
-
復用設置
先看寄存器圖
同樣的這些寄存器都有write_enable位。如果要寫入bit0,需要先設置bit 16為1
上圖設置了GPIO2 A組裡面第0個pin,用2位來設置這個引腳的功能
本文來自博客園,作者:yang_dh,轉載請註明原文鏈接:https://www.cnblogs.com/yangdh/p/17280285.html