浅析TMS320F28035的GPIO模块
Posted 玖道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析TMS320F28035的GPIO模块相关的知识,希望对你有一定的参考价值。
目录
通用输入输出端口(General Purpose Input Output, GPIO)几乎是学习包括DSP,单片机在内的微处理器的第一步。GPIO
的功能包括基本的输入,输出,也可以复用为其他外设功能。
GPIO简介
TMS320F28035具有45个GPIO引脚(不包括模拟输入输出引脚AIO),分为两大部分: Part A(0~31)
,Part B(32~44)
。其中,每个引脚除了具备通用数字输入/输出功能外,还最多复用三个外设引脚功能,可以通过多路复用选择寄存器(GPxMUXn)
进行配置。
GPIO的默认功能是通用数字输入/输出功能,在进行配置时,主要步骤如下:
-
引脚的方向:输入/输出,0(输入) 1(输出),通过
GPBDIR
进行配置。 -
引脚的电平:1(高电平),0(低电平),这个可选。
-
引脚的复用:基本输入输出功能 or 外设复用功能。
比如我们要使用某个GPIO引脚,周期性输出高低电平,从而闪烁LED灯。那么,我们需要进行如下配置GPIO:
- 方向:输出
- 电平:周期性翻转电平
- 复用:不进行复用,默认基本输入输出功能
硬件电路
可见,GPIO34引脚与LED的阴极相连,当GPIO34输出低电平时,LED亮; GPIO34输出高电平时,LED灭。
软件代码
- 一些初始化工作,包括系统配置,中断,看门狗等
InitSysCtrl(); // 初始化系统配置,关闭看门狗,开启外设时钟
DINT; // 关闭CPU级总中断:INTM(0:开启,1:关闭)
InitPieCtrl(); // 初始化外设中断扩展配置
IER = 0x0000; // 关闭CPU级中断使能位
IFR = 0x0000; // 关闭CPU级中断标志位
InitPieVectTable(); // 初始化PIE向量表
- 配置GPIO34引脚为
输出引脚
,默认基本输入输出
功能
由前面可知,34引脚输入Group B
,所以需要使用与Group B相关的寄存器,如GPBMUX1
、GPBDIR
EALLOW; // 开锁
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; // GPIO34作为普通IO 0: GPIO
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; // GPIO34方向为输出 0: 输入 1: 输出
EDIS; // 上锁
- 主循环中实现电平的翻转,延时函数实现LED灯闪烁的效果
while(1)
// 延时1s
DSP28x_usDelay(1000000);
// 电平翻转
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
完整代码
#include "DSP28x_Project.h" // Device Header file and Examples Include File
//------------------------- 硬件配置-----------------------------//
//
// LED-----> GPIO34
//
//---------------------------------------------------------------//
/**
* main.c
*/
void main(void)
InitSysCtrl(); // 初始化系统配置,关闭看门狗,开启外设时钟
DINT; // 关闭CPU级总中断:INTM(0:开启,1:关闭)
InitPieCtrl(); // 初始化外设中断扩展配置
IER = 0x0000; // 关闭CPU级中断使能位
IFR = 0x0000; // 关闭CPU级中断标志位
InitPieVectTable(); // 初始化PIE向量表
//********************* code start here ****************************//
EALLOW; // 开锁
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; // GPIO34作为普通IO 0: GPIO
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; // GPIO34方向为输出 0: 输入 1: 输出
EDIS; // 上锁
while(1)
// 延时1s
DSP28x_usDelay(1000000);
// 电平翻转
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
//********************* code end here ******************************//
总结
大致就是这样,GPIO的配置相对简单,也是学习DSP的第一步,加油。
以上是关于浅析TMS320F28035的GPIO模块的主要内容,如果未能解决你的问题,请参考以下文章