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口的配置已经完成了。根据相应的结构体可以查看寄存器。注意学会使用联想功能。
DSP28035的编程初步--GPIO操作的更多相关文章
- C# winform编程中多线程操作控件方法
private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart( ...
- linux 标准 GPIO 操作
Linux 提供了GPIO 操作的 API,具体初始化及注册函数在 driver/gpio/lib_gpio.c 中实现. #include int gpio_request(unsigne ...
- STM32标准库GPIO操作
STM32标准库GPIO操作 STM32任何外围设备的使用都分为两部分:初始化和使用.体现在代码上就是:(1)有一个初始化函数(2)main函数中的使用 1.初始化GPIO 初始化GPIO函数代码: ...
- RK3399/NanoPC-T4开发板使用/sys/class/gpio操作外接GPIO设备-【申嵌视频-RK3399篇】
实验2:RK3399/NanoPC-T4开发板使用/sys/class/gpio操作外接GPIO设备,比如外接一个LED模块,通过GPIO1_A0管脚 1 介绍 LED模块 Matrix-LE ...
- Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、
1:Scala和Java的对比: 1.1:Scala中的函数是Java中完全没有的概念.因为Java是完全面向对象的编程语言,没有任何面向过程编程语言的特性,因此Java中的一等公民是类和对象,而且只 ...
- 第5天(半天)【shell编程初步、grep及正则表达式】
第5天(半天)[shell编程初步.grep及正则表达式] shell编程初步(01)_recv shell脚本:文本文件 #!:/bin/bash #!:/usr/bin/python #!:/us ...
- esp32的GPIO操作
对于任何一款芯片,GPIO接口是其最基本的组成部分,也是一款芯片入门的最基本操作,下面论述下 关于esp32开发版的GPIO操作,本文中重点讲解下 关于如何创建eclipse工程,并通过eclipse ...
- 通过数组和枚举简化GPIO操作编码(转)
源: 通过数组和枚举简化GPIO操作编码
- sys下gpio操作
gpio_operation 通过/sys/文件接口操作IO端口 GPIO到文件系统的映射 * 控制GPIO的目录位于/sys/class/gpio * /sys/class/gpio/export文 ...
随机推荐
- BestCoder Round #59 (div.2) B. Reorder the Books 想法题
Reorder the Books 问题描述 dxy家收藏了一套书,这套书叫<SDOI故事集>,<SDOI故事集>有n(n\leq 19)n(n≤19)本,每本书有一个编号,从 ...
- Vue相关开源项目库汇总 http://www.opendigg.com/tags/front-vue
awesome-github-vue 是由OpenDigg整理并维护的Vue相关开源项目库集合.我们会定期同步OpenDigg上的项目到这里,也欢迎各位提交项目给我们. 如果收录的项目有错误,可以通过 ...
- JSP页面规格化
http://doc.okbase.net/%E4%BA%BA%E7%94%9F%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/archive/123084.html htt ...
- MSP430:PWM产生
#define PWM BIT6 // Description: This program generates one PWM output on ...
- iOS通讯录(纯纯的干货)
一.iOS8.0 1.访问用户通讯录的两个框架 (1)AddressBookUI.framework 提供了联系人列表界面.联系人详情界面.添加联系人界面等,一般用于选择联系人 (2)AddressB ...
- PCB MS SQL SERVER 字段含小写字母更新为大写字母
今天在预审完成时报如下错误,此错误原因是由于SQL Server数据字段存在小写,而Oracle数据库需大写导致的, 怎么解决这个问题了,非常简单 .这里将SQL贴出来 . 1.将生产型号中含有小写字 ...
- AngularJS过滤器filter-保留小数-渲染页面-小数点-$filter
AngularJS 保留小数 默认是保留3位 固定的套路是 {{deom | number:4}} 意思就是保留小数点 的后四位 在渲染页面的时候 加入这儿个代码 用来精确浮点数,指定小数点 ...
- 多物体运动框架案例一:多个Div的宽度运动变化
多物体运动框架,鼠标移入Div,此Div逐渐变宽,鼠标移出后,此Div逐渐缩短恢复原长度. <!doctype html> <html> <head> <ti ...
- django 菜单权限
一.什么是权限 能做哪些事情,不能做哪些事情,可以做的权限 二.设计权限 思路: web应用中,所谓的权限,其实就是一个用户能够访问的url,通过对用户访问的url进行控制,从而实现对用户权限的控制. ...
- Linux命令(003) -- crontab
一.准备知识 Linux下的任务调度分为两类:系统任务调度和用户任务调度. (1).系统任务调度 系统任务调度是系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个cro ...