zoukankan      html  css  js  c++  java
  • 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口的配置已经完成了。根据相应的结构体可以查看寄存器。注意学会使用联想功能。

  • 相关阅读:
    【2017-03-09】SQL Server 数据库基础、四种约束
    【2017-03-05】函数基础、函数四种结构、ref和out参数、递归
    procecss on技巧
    角度与弧度
    C语言求π的方法
    三轴加速度传感器角度值转换原理
    C获取数组长度
    如何使用ProcessOn制作思维导图
    processon完全装逼指南
    NORDIC GATT事件
  • 原文地址:https://www.cnblogs.com/wt88/p/7418049.html
Copyright © 2011-2022 走看看