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

DSP28035的编程初步--GPIO操作的更多相关文章

  1. C# winform编程中多线程操作控件方法

    private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart( ...

  2. linux 标准 GPIO 操作

    Linux 提供了GPIO 操作的 API,具体初始化及注册函数在 driver/gpio/lib_gpio.c 中实现.   #include    int gpio_request(unsigne ...

  3. STM32标准库GPIO操作

    STM32标准库GPIO操作 STM32任何外围设备的使用都分为两部分:初始化和使用.体现在代码上就是:(1)有一个初始化函数(2)main函数中的使用 1.初始化GPIO 初始化GPIO函数代码: ...

  4. RK3399/NanoPC-T4开发板使用/sys/class/gpio操作外接GPIO设备-【申嵌视频-RK3399篇】

    实验2:RK3399/NanoPC-T4开发板使用/sys/class/gpio操作外接GPIO设备,比如外接一个LED模块,通过GPIO1_A0管脚 1 介绍   LED模块   Matrix-LE ...

  5. Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、

    1:Scala和Java的对比: 1.1:Scala中的函数是Java中完全没有的概念.因为Java是完全面向对象的编程语言,没有任何面向过程编程语言的特性,因此Java中的一等公民是类和对象,而且只 ...

  6. 第5天(半天)【shell编程初步、grep及正则表达式】

    第5天(半天)[shell编程初步.grep及正则表达式] shell编程初步(01)_recv shell脚本:文本文件 #!:/bin/bash #!:/usr/bin/python #!:/us ...

  7. esp32的GPIO操作

    对于任何一款芯片,GPIO接口是其最基本的组成部分,也是一款芯片入门的最基本操作,下面论述下 关于esp32开发版的GPIO操作,本文中重点讲解下 关于如何创建eclipse工程,并通过eclipse ...

  8. 通过数组和枚举简化GPIO操作编码(转)

    源: 通过数组和枚举简化GPIO操作编码

  9. sys下gpio操作

    gpio_operation 通过/sys/文件接口操作IO端口 GPIO到文件系统的映射 * 控制GPIO的目录位于/sys/class/gpio * /sys/class/gpio/export文 ...

随机推荐

  1. Codeforces Round #273 (Div. 2)D. Red-Green Towers DP

    D. Red-Green Towers   There are r red and g green blocks for construction of the red-green tower. Re ...

  2. poj2011

    Shortest Prefixes Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 17608   Accepted: 765 ...

  3. research plan1111

    Hello prof.Choi 感谢您的来电,与您的这次通话我已经期盼了很久.我来做个自我介绍,我叫陈飞,今年27岁了,是河北地质大学计算机科学专业的本科毕业生.我非常想提高自己的学历,现在经过刘老师 ...

  4. linux下 yum相关

    1.1 什么是yum源 Yellowdog Updater, Modified 一个基于RPM包管理的字符前端软件包管理器. 能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安 ...

  5. ArgumentError: You need to supply at least one validatio

    创建: 2017/10/02   意思: validate没有内容 例:   validates :title

  6. [Apple开发者帐户帮助]九、参考(3)支持的功能(iOS)

    iOS应用程序可用的功能取决于您的程序成员身份. 能力 ADP 企业 Apple开发者 访问Wifi信息   应用程序组 Apple Pay     相关域名   自动填充凭据提供程序   背景模式 ...

  7. 在JavaScript中"+"什么时候是链接符号,什么时候是加法运算?

    二元加法运算符“+”在两个操作数都是数字或都是字符串时,计算结果是显而易见的.加号“+”的转换规则优先考虑字符串连接,如果其中一个操作数是字符串或者转换为字符串的对象,另外一个操作数会转换为字符串,加 ...

  8. Kafka详解与总结(二)

    Kafka Stream Kafka Streams是一个客户端库,用于构建任务关键型实时应用程序和微服务,其中输入和输出数据存储在Kafka集群中.Kafka Streams结合了在客户端编写和部署 ...

  9. eclipse-html插件的安装

    需求:需要在eclipse里面编辑html和jsp,语法高亮和语法提示,自动补全等. 1.下载GEF(依赖包): http://www.eclipse.org/downloads/download.p ...

  10. 51nod 1222 莫比乌斯反演

    思路: yhx找的反演题 题解已经烂大街了 #pragma GCC optimize("O3") //By SiriusRen #include <bits/stdc++.h ...