DSP 基础学习 2:GPIO与第一个实验:流水LED灯 | 您所在的位置:网站首页 › 主板上的发光二极管 › DSP 基础学习 2:GPIO与第一个实验:流水LED灯 |
DSP 基础学习 2:GPIO与第一个实验:流水LED灯
1 实验准备
1.1 实验简介
1.2 GPIO介绍
2 代码解读
2.1 准备工作
2.2 LED.h
2.3 LED.c
3 结尾细节
鄙人使用的DSP是TMS320F28335PGFA,开发板是pop28335(师兄遗留的,开发板大同小异,貌似POP现在倒闭了?),仿真器是XDS100V3。电脑系统为windows8.1,CCS软件版本是6.0.1。
上一篇简单介绍了DSP以及怎么部署开发环境,本着以做为主的原则,这一篇就要做出第一个实验:流水LED灯。为了做出这个实验,还得学习GPIO相关的内容。本篇用到的资源在以下这个链接里下载。 https://download.csdn.net/download/huagengpai1994/10875803 里面有四个文件夹,分别是例程、数据手册、用户手册和应用手册。 1 实验准备 1.1 实验简介实验达到的效果是让led灯间歇依次高亮,也就是流水LED灯。 LED灯属于外设,要想控制外设就得知道硬件是怎么连接的,所以看原理图是必要的第一步。 在开发板原理图上可以找到LED灯部分,如下图。 ![]() 可以看到有8个LED灯,一端通过限流电阻接在3.3V高电压上,D3.3表示直流3.3V。另一边分别接在GPIO60,GPIO61,GPIO2,GPIO3,GPIO4,GPIO5,GPIO6,GPIO7。 GPIO全称是:General Purpose Input Output (通用输入/输出)。它是DSP芯片用来与外界电路进行信息互换的端口。只要让GPIO输出低电压,那么对应的LED灯支路就会有电流通过,该LED灯被点亮,反之不亮。所以关键在于GPIO的使用。 1.2 GPIO介绍DSP28335一共88个IO口分为3组 A组:GPIO0~GPIO31 B组:GPIO32~GPIO63 C组:GPIO64~GPIO87 下图是核心板原理如上DSP的部分,可以看到有很多GPIO口。 ![]() TI官方给出了一些手册用来说明芯片的使用。我这里有用户手册,数据手册和应用手册,下载链接在本文开头给出了。在用户手册的《sprufb0d(TMS320x2833x, 2823x System Control and Interrupts)》第六章General-Purpose Input/Output (GPIO)中详细说明了GPIO。这里就不挨个解读了,建议将该章通读一遍,虽然是英文的但应该都能看明白。 2 代码解读把上篇的模板拷贝过来一份,直接使用该模板进行开发。 鄙人的本程序也是参考别人的例程开发的(买板子的时候店家给的,不知道是不是官方的),该例程只有一个main.c文件。所有例程都在资料里,本篇的相关的内容应该是例程17。 2.1 准备工作![]() 在Hello DSP 文件夹下新建文件夹APP,然后在其中新建LED文件夹,接着在LED文件夹下新建LED.C和LED.h两个文件。APP是用来保存外设的文件,LED是一个外设。新建public.c和public.h,用来包含公共的头文件,否则main.c的内容过于多。这样是基于模块化的编程,将功能分离,逻辑上更简洁。 在public.c中写入以下代码: ![]() 在public.h中写入以下代码: ![]() 第1,2,7行代码是固定程式,在这里就是这样去写。C语言里这叫条件编译,是为了防止重定义。 第4,5行,表示包含这两个头文件,第一个头文件是为了包含DSP系统的基本文件,包含它相当于包含了另两个文件。第二个就是包含我们编写的外设文件,LED.h。 2.2 LED.h在LED.h中写入一下代码。 #ifndef LED_H #define LED_H #include "DSP28x_Project.h" /**************************************宏定义************************************************/ #define LED1_OFF GpioDataRegs.GPBSET.bit.GPIO60 = 1 //LED D10 点亮 #define LED1_ON GpioDataRegs.GPBCLEAR.bit.GPIO60 = 1 //LED D10 熄灭 #define LED2_OFF GpioDataRegs.GPBSET.bit.GPIO61 = 1 //LED D11 点亮 #define LED2_ON GpioDataRegs.GPBCLEAR.bit.GPIO61 = 1 //LED D11 熄灭 #define LED3_OFF GpioDataRegs.GPASET.bit.GPIO2 = 1 //LED D12 点亮 #define LED3_ON GpioDataRegs.GPACLEAR.bit.GPIO2 = 1 //LED D12 熄灭 #define LED4_OFF GpioDataRegs.GPASET.bit.GPIO3 = 1 //LED D13 点亮 #define LED4_ON GpioDataRegs.GPACLEAR.bit.GPIO3 = 1 //LED D13 熄灭 #define LED5_OFF GpioDataRegs.GPASET.bit.GPIO4 = 1 //LED D14 点亮 #define LED5_ON GpioDataRegs.GPACLEAR.bit.GPIO4 = 1 //LED D14 熄灭 #define |
CopyRight 2018-2019 实验室设备网 版权所有 |