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

  • 相关阅读:
    工业和信息化部“十二五”规划教材:阵列信号处理及MATLAB实现
    PHP 7从零基础到项目实战
    HTML+CSS网页设计详解
    新编 中文版Maya入门与提高
    Lua游戏AI开发指南
    这么设计能热卖:融入运营思维的电商设计进阶宝典(套装上下册)
    WCF初探-1:认识WCF
    用微信二维码登录自己的网站
    01-C语言基本知识
    「OC」内存管理
  • 原文地址:https://www.cnblogs.com/wt88/p/7418049.html
Copyright © 2011-2022 走看看