DSP28035的編程初步--GPIO操作


明白DSP編程的基本流程,熟悉DSP28035的GPIO的使用。
代碼執行流程:
首先是系統時鍾的選擇。
其次是PIE中斷向量表的初始化。
一些外設的初始化操作
While(){}

根據EXPERIMENTER’S  KIT板上兩個發光二極管對DSP的GPIO進行操作。
GPIO31和GPIO34兩個IO口進行操作

宏定義操作:
#define  LED_ON                 (GpioDataRegs.GPADAT.bit.GPIO31 = 0;)                //GPIO31輸出低電平
#define  LED_OFF               (GpioDataRegs.GPADAT.bit.GPIO31 = 1;)                //GPIO31輸出高電平
#define  LED_TOGGLE          (GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1)              //GPIO31輸出翻轉電平
輸入的宏定義操作:
#define  IsK3_L                (GpioDataRegs.GPBDAT.bit.GPIO32 == 0)           //GPIO32輸入低電平
#define  IsK3_H                (GpioDataRegs.GPBDAT.bit.GPIO32 == 1)          //GPIO32輸入高電平

void Init_GPIO()
{
        EALLOW;                                                                   //GPIO寄存器受保護
        GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0;               //GPIO31作為普通IO
        GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 1;               //GPIO31作為CAN_TXD
        GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;               //GPIO34作為普通IO
        GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 1;               //GPIO34作為特殊功能口
        GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;                   //GPIO31方向為輸出
         GpioCtrlRegs.GPADIR.bit.GPIO31 = 0;                   //GPIO31方向為輸入
        GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;                   //GPIO34方向為輸出
         GpioCtrlRegs.GPADIR.bit.GPIO34 = 1;                   //GPIO34方向為輸入
        EDIS;
}
輸入操作:
        EALLOW;                                                                   //GPIO寄存器受保護
        GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0;               //GPIO32作為普通IO
        GpioCtrlRegs.GPBDIR.bit.GPIO32 = 0;                   //GPIO32方向為輸入
        GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0;                   //開啟內部上拉
        EDIS;
輸出IO口輸出高低電平的配置操作方式:
Eg1:
GpioDataRegs.GPADAT.bit.GPIO31 = 1;                //GPIO31輸出高電平
GpioDataRegs.GPBDAT.bit.GPIO34 = 1;              //GPIO34輸出高電平          
GpioDataRegs.GPADAT.bit.GPIO31 = 0;                //GPIO31輸出低電平
GpioDataRegs.GPBDAT.bit.GPIO34 = 0;              //GPIO34輸出低電平
Eg2:
GpioDataRegs.GPASET.bit.GPIO31 = 1;                //Set置位則輸出高電平
GpioDataRegs.GPBSET.bit.GPIO34 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO31 = 1;        //CLEAR置位則輸出低電平
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
Eg3:
GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1;        //GPIO31端口電平翻轉一次
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;        //GPIO34端口電平翻轉一次

檢測DSP的IO輸入操作:
GPIO的輸入操作配置;
        if( GpioDataRegs.GPBDAT.bit.GPIO32 == 0)        //if(IsK3_L)
                {
                        GpioDataRegs.GPBDAT.bit.GPIO40 = 0;
                }
                else
                {
                        GpioDataRegs.GPBDAT.bit.GPIO40 = 1;
                }
上面的語句就可以作為檢測的輸入端口了。這樣關於DSP的IO口的配置已經完成了。根據相應的結構體可以查看寄存器。注意學會使用聯想功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM