文章目录
一、前言
1.1、设计思路
用DSP28335GPIO68管脚输出低电平,点亮LED灯
1.2、工具
1、普中科技开发板(TMS320F28335PGFA)×1
2、配套的仿真器×1
1.3、原理介绍
TMS320F28335PGFA有三组GPIO,A组(0~31),B组(32~63),C组(64~87),我们要使用GPIO68管脚,故,用的是C组。
下图为GPIOA组的原理框图,B、C组同理。
从图中可以得出,我们要控制GPIO68号管脚输出高低电平,就需要:
- 配置GPIO为通用输入输出口,即GPXMUX=1;
- 配置GPIO为输出模式,即GPXDIR=1;
- 因为开发板LED灯是输入低电平点亮,我们希望GPIO管脚不输出时LED灭,设置上拉,即:GPXPUD=0;
- 控制GPIO管脚输出低电平,点亮开发板LED灯,即GPXCLEAR=1.
这里“X”为A、B或C,因为控制GPIO68号管脚,本例为C
二、步骤
2.1、程序编写
1、初始化子程序
void LED_Init(void)
{
EALLOW;//关闭写保护
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;// 开启GPIO时钟
//LED1端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO68=0;//设置为普通IO功能,如果是GPIO79以后的管脚由GPCMUX2控制
GpioCtrlRegs.GPCDIR.bit.GPIO68=1;//设置GPIO方向为输出
GpioCtrlRegs.GPCPUD.bit.GPIO68=0;//使能GPIO上拉电阻
GpioDataRegs.GPCSET.bit.GPIO68=1;//初始时希望GPIO口输出高电平,使LED灯熄灭
EDIS;//开启写保护
}
2、编写头文件
#ifndef LED_P_H_//条件编译
#define LED_P_H_
#include "DSP2833x_Device.h" // DSP2833x Headerfile include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
void LED_Init(void); //声明源文件编写的初始化程序
3、编写主函数
#include "led_p.h" //包含头文件
void main()
{
InitSysCtrl();//系统时钟初始化,默认开启F28335所有外设时钟
LED_Init();//调用初始化程序
while(1)
{
GpioDataRegs.GPCCLEAR.bit.GPIO68=1;//GPIO68管脚输出低电平,点亮开发板LED灯
}
三、验证
仿真器连接开发板,进行程序烧录,结果如下图,这样就用GPIO68管脚点亮了LED~