1. 程式人生 > >DSP 28335中GPIO配置

DSP 28335中GPIO配置

F28335有三種32位的I/O口,依次PORTA(GPIO0-GPIO31),  PORTB(GPIO32-GPIO63),  PORTC(GPIO64-GPIO87),這些口都可以配置為普通的數字IO口同樣也能被配置為外部介面。這樣涉及到了IO的暫存器,IO口共有三類暫存器:控制暫存器、資料暫存器和中斷控制暫存器。
1、 GPIO可以配置為數字I/O或外設I/O口,GPxMUX1(2):‘0’為數字I/O,‘1’為外設I/O口;
2: GPIO可以配置為內部電阻上拉功能,GPxPUD:‘0’為上拉,‘1’為禁止上拉
3: GPIO具有數字濾波功能,GPxQSEL1(2):量化輸入暫存器,可以確定是3週期取樣還是6週期取樣或者不用取樣;
GPIO可以配置為內部電阻上拉功能,GPxPUD:‘0’為上拉,‘1’為禁止上拉,

4、 輸入輸出可配置,GPxDIR是控制每個引腳的輸入或是輸出,‘0’是輸入,‘1’是輸出;
  當GPIO配置為數字I/O時注意:
28335引腳作為輸出時,雖然可以通過設定GPADAT或GPBDAT改變輸出埠的高低電平,但是單獨寫某一位時可能會使其它引腳產生誤操作。
為了避免這種現象的產生,改變輸出引腳的高低電平時,應該使用GPIOxSET(置位),GPIOxCLEAR(清零),GPIOxTOGGLE(反向,可以代替去翻操作)暫存器載入輸出鎖存寄存,GPIOxDIR配置方向,1為輸出,0為輸入.
28335引腳作為輸入時,採集外部相應引腳的高低電平,只要讀取GPADAT或GPBDAT的相應位即可。在有些場合高頻干擾會使I/O引腳的讀入產生誤碼。為了避免這種現象,28335引入了取樣時間的概念,取樣時間可以通過GPxCTRL與GPxQSEL1/2設定為systemclock的倍數(100MHz的頻率,最小取樣時間為10ns,最大采樣時間為5.1us.)