DSP 28733D (二)LED灯实验

拷贝上一小节创建的工程文件,重新命名为Lab1_LED

连接目标板与仿真器

选择CPU1进行连接

仿真操作

在cmd文件夹下

2837xD_FLASH_lnk_cpu1.cmd(烧写所用 CMD 文件)
2837xD_RAM_lnk_cpu1.cmd(仿真所用 CMD 文件)
这两个文件一个用来烧写程序,另一个用来仿真,两者只能选择一个进行操作。选择Exclude from Build进行屏蔽操作,屏蔽时成灰色。
仿真烧写如下:
烧写如下:
首先屏蔽 2837xD_RAM_lnk_cpu1.cmd

右击项目文件,选择最后一个

选择cpu1

重新编译文件

硬件

总共七个LED,6个管脚GPIO0-GPIO5与其相连,6个LED共阴极相连,当管脚输出高电平时,LED被点亮,输出低电平时,LED熄灭。

首先,包含头文件

#include "F28x_Project.h"
#include "F2837xD_Ipc_drivers.h"


F28x_Project.h文件定义 F28x 项目头文件和示例包含文件 

F2837xD_Ipc_drivers.h文件定义 IPC Controller

#define LED1_ON  GpioDataRegs.GPASET.bit.GPIO0 = 1      //GPIO0置高
#define LED1_OFF GpioDataRegs.GPACLEAR.bit.GPIO0 = 1    //GPIO置低
#define LED2_ON  GpioDataRegs.GPASET.bit.GPIO1 = 1
#define LED2_OFF GpioDataRegs.GPACLEAR.bit.GPIO1 = 1
#define LED3_ON  GpioDataRegs.GPASET.bit.GPIO2 = 1
#define LED3_OFF GpioDataRegs.GPACLEAR.bit.GPIO2 = 1
#define LED4_ON  GpioDataRegs.GPASET.bit.GPIO3 = 1
#define LED4_OFF GpioDataRegs.GPACLEAR.bit.GPIO3 = 1
#define LED5_ON  GpioDataRegs.GPASET.bit.GPIO4 = 1
#define LED5_OFF GpioDataRegs.GPACLEAR.bit.GPIO4 = 1
#define LED6_ON  GpioDataRegs.GPASET.bit.GPIO5 = 1
#define LED6_OFF GpioDataRegs.GPACLEAR.bit.GPIO5 = 1

首先讲解GPIO_DATA_REGS,

volatile struct GPIO_DATA_REGS GpioDataRegs;

此函数主要定义了GPIO端口寄存器

struct GPIO_DATA_REGS {
    union   GPADAT_REG                       GPADAT;                       // GPIO A Data Register (GPIO0 to 31)
    union   GPASET_REG                       GPASET;                       // GPIO A Data Set Register (GPIO0 to 31)
    union   GPACLEAR_REG                     GPACLEAR;                     // GPIO A Data Clear Register (GPIO0 to 31)
    union   GPATOGGLE_REG                    GPATOGGLE;                    // GPIO A Data Toggle Register (GPIO0 to 31) 
    union   GPBDAT_REG                       GPBDAT;                       // GPIO B Data Register (GPIO32 to 63)
    union   GPBSET_REG                       GPBSET;                       // GPIO B Data Set Register (GPIO32 to 63)
    union   GPBCLEAR_REG                     GPBCLEAR;                     // GPIO B Data Clear Register (GPIO32 to 63)
    union   GPBTOGGLE_REG                    GPBTOGGLE;                    // GPIO B Data Toggle Register (GPIO32 to 63) 
    union   GPCDAT_REG                       GPCDAT;                       // GPIO C Data Register (GPIO64 to 95)
    union   GPCSET_REG                       GPCSET;                       // GPIO C Data Set Register (GPIO64 to 95)
    union   GPCCLEAR_REG                     GPCCLEAR;                     // GPIO C Data Clear Register (GPIO64 to 95)
    union   GPCTOGGLE_REG                    GPCTOGGLE;                    // GPIO C Data Toggle Register (GPIO64 to 95) 
    union   GPDDAT_REG                       GPDDAT;                       // GPIO D Data Register (GPIO96 to 127)
    union   GPDSET_REG                       GPDSET;                       // GPIO D Data Set Register (GPIO96 to 127)
    union   GPDCLEAR_REG                     GPDCLEAR;                     // GPIO D Data Clear Register (GPIO96 to 127)
    union   GPDTOGGLE_REG                    GPDTOGGLE;                    // GPIO D Data Toggle Register (GPIO96 to 127) 
    union   GPEDAT_REG                       GPEDAT;                       // GPIO E Data Register (GPIO128 to 159)
    union   GPESET_REG                       GPESET;                       // GPIO E Data Set Register (GPIO128 to 159)
    union   GPECLEAR_REG                     GPECLEAR;                     // GPIO E Data Clear Register (GPIO128 to 159)
    union   GPETOGGLE_REG                    GPETOGGLE;                    // GPIO E Data Toggle Register (GPIO128 to 159) 
    union   GPFDAT_REG                       GPFDAT;                       // GPIO F Data Register (GPIO160 to 168)
    union   GPFSET_REG                       GPFSET;                       // GPIO F Data Set Register (GPIO160 to 168)
    union   GPFCLEAR_REG                     GPFCLEAR;                     // GPIO F Data Clear Register (GPIO160 to 168)
    union   GPFTOGGLE_REG                    GPFTOGGLE;                    // GPIO F Data Toggle Register (GPIO160 to 168) 
};

查看结构体定义,看到每个 端口有4个寄存器

其中每个寄存器设置为1启动

void GPIO_Setup() //配置GPIO的功能
{
    GPIO_SetupPinMux(0, GPIO_MUX_CPU1, 0);//对引脚0设置;选择CPU1为内核,选择外设功能0
    GPIO_SetupPinOptions(0, GPIO_OUTPUT, GPIO_PUSHPULL);//GPIO0,作为输出,上拉
    GPIO_SetupPinMux(1, GPIO_MUX_CPU1, 0);
    GPIO_SetupPinOptions(1, GPIO_OUTPUT, GPIO_PUSHPULL);
    GPIO_SetupPinMux(2, GPIO_MUX_CPU1, 0);
    GPIO_SetupPinOptions(2, GPIO_OUTPUT, GPIO_PUSHPULL);
    GPIO_SetupPinMux(3, GPIO_MUX_CPU1, 0);
    GPIO_SetupPinOptions(3, GPIO_OUTPUT, GPIO_PUSHPULL);
    GPIO_SetupPinMux(4, GPIO_MUX_CPU1, 0);
    GPIO_SetupPinOptions(4, GPIO_OUTPUT, GPIO_PUSHPULL);
    GPIO_SetupPinMux(5, GPIO_MUX_CPU1, 0);
    GPIO_SetupPinOptions(5, GPIO_OUTPUT, GPIO_PUSHPULL);
}

 void GPIO_SetupPinMux(Uint16 pin, Uint16 cpu, Uint16 peripheral)

三个参数:

Pin:选择对应的引脚

cpu:选择cpu

peripheral:功能序号0~15 具体功能查看芯片手册

 GPIO_SetupPinOptions(0, GPIO_OUTPUT, GPIO_PUSHPULL);

设置管脚输入输出模式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值