** 一、概述 **
(资料图片仅供参考)
GPIO(General Purpose Intput Oytput)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。DSP28335芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。GPIO最简单的就是做输出高低电平
本篇文件将介绍DSP28335的GPIO的输出高低电平功能。
二、GPIO结构框图
DSP28335的通用输入输出GPIO共有88个引脚,该芯片将88个GPIO分成A、B、C三组进行管理。其中A组为:GPIO0GPIO31;B组为:GPIO32GPIO63;C组为:GPIO64~GPIO87。
图1 GPIO结构框图
图1为GPIO的A组结构框图,对于B、C是一致的。将GPIO结构框图分为4部分。各部分用处如下:
第一部分:这一部分确定GPIO是输入还是输出,比如GPIOx_DIR=1时为输出,GPIOx_DIR=0时作输入使用[ **控制输入还是输出** ];
第二部分:这一部分是数据数据寄存器,当GPIO作输出使用时,给数据寄存器控制高电平输出的数据位写有效值时,GPIO就输出高电平,给数据寄存器控制低电平输出的数据位写有效值时,GPIO就输出低电平;当GPIO作输入使用时,该部分只能读,比如读此时引脚采样到的是高电平还是低电平。
第三部分:这一部分是GPIO作输入使用才用到,比如GPIO接一个按键作输入,产生一个中断。
第四部分:这一部分是GPIO的上拉控制,使用上拉可以增强GPIO的驱动能力。通过对该部分的寄存器配置可以使能GPIO上拉功能或者失能GPIO上拉功能。
三、GPIO输出高低电平涉及寄存器
GPIO的寄存器分为三大类,第一类是控制寄存器,主要由功能选择寄存器GPxMCUn[ 控制是否是普通输入输出功能]、方向控制寄存器GPxDIR[ 控制是作输出用还是输入用]、上拉控制寄存器GPxPUD,x代表A、B、C,n代表1或者2。
图2 GPIO控制寄存器
第二类为数据寄存器,主要由数据寄存器GPxDAT、置位寄存器GPxSET、清除寄存器GPxCLEAR和状态翻转寄存器GPxTOGGLE等组成。用于控制GPIO作输出时候引脚高低电平控制,或者GPIO作输入时读引脚电平用。
图3 GPIO数据寄存器
四、DSP28335的GPIO作输出使用点亮LED灯例子
硬件原理图如下:
图4 硬件原理图
LED灯接在GPIO75引脚上,只要将该引脚设置为低电平,LED灯就会亮。
编程步骤:
将GPIO配置为作通用GPIO用,而不是复用为其他功能(PWM,ADC),只做输入输出用;将GPIO作为配置为输出用;将GPIO配置为上拉;将GPIO75设置为低电平;其中步骤1对应19行,步骤2对应20行,步骤3对应21行,步骤4对应23行。
主函数用调用该函数就可以点亮一个LED灯了。
主函数中InitSysCtrl()是对处理器时钟的初始化,芯片的时钟是芯片的心脏。下一篇文章介绍一下DSP28335芯片的心脏。
至此DSP28335的GPIO做普通高低电平输出用已经讲完。
五、总结
本篇文章介绍了DSP28335的GPIO的输出高低电平功能,从GPIO结构框图到GPIO做普通输出寄存器做了相关介绍,并手把手教怎么写控制一个LED灯,通过本章的学习,可以掌握DSP28335的GPIO功能。