DSP CCS 12.00 芯片:TMS320F28335 建立工程 ,使LED 灯闪烁

1.建立工程

 


2.连接芯片,测试是否连接

 


3.需要用到的文件展示 !


 

4. 在工程里面新建一个文件夹,来存储数据,(.c  文件    .asm 文件)


5.添加文件到 文件夹里面去

 


6.在新建的文件夹里面 ,添加主函数  main.c   文件

 


7.手动添加头文件


8.添加的文件夹名字 

这个资源我放在我的资源里面了!  (V101)

 

 


 9.开始的时候测试 配置是否成功!

完整的目录:

 

代码很少  自己打! 

写在 main.c  里面


10.LED 闪烁的代码:

/*
 * main.c
 *
 *  Created on: 2022年9月14日
 *      Author: she001
 */
//###########################################################################
//
// FILE:    Example1_2833xGpioLED.c
//
// TITLE:   用DSP点亮发光二极管实验
//
//
//    根据在RAM中调试的需要,这个项目配置成"boot to SARAM".2833x引导模式
//    表如下显示. 常用的还有"boot to Flash"模式,当程序在RAM调试完善后就
//    可以将代码烧进Flash中并使用"boot to Flash"引导模式.
//
//       $Boot_Table:
//
//         GPIO87   GPIO86     GPIO85   GPIO84
//          XA15     XA14       XA13     XA12
//           PU       PU         PU       PU
//        ==========================================
//            1        1          1        1    Jump to Flash
//            1        1          1        0    SCI-A boot
//            1        1          0        1    SPI-A boot
//            1        1          0        0    I2C-A boot
//            1        0          1        1    eCAN-A boot
//            1        0          1        0    McBSP-A boot
//            1        0          0        1    Jump to XINTF x16
//            1        0          0        0    Jump to XINTF x32
//            0        1          1        1    Jump to OTP
//            0        1          1        0    Parallel GPIO I/O boot
//            0        1          0        1    Parallel XINTF boot
//            0        1          0        0    Jump to SARAM       <- "boot to SARAM"
//            0        0          1        1    Branch to check boot mode
//            0        0          1        0    Boot to flash, bypass ADC cal
//            0        0          0        1    Boot to SARAM, bypass ADC cal
//            0        0          0        0    Boot to SCI-A, bypass ADC cal
//                                              Boot_Table_End$
//
// 功能描述:
//
//   程序编译下载成功后,运行程序时LED灯组会一直闪烁
//
//
//###########################################################################
// 释放日期: 2016.8.2
//###########################################################################

#include "DSP2833x_Device.h"     // DSP2833x 头文件
#include "DSP2833x_Examples.h"   // DSP2833x 例子相关头文件



// 使用前,声明本文件中的相关函数;
void delay_loop(void);
void Gpio_select(void);

void main(void)
{

// 步骤 1. 初始化系统控制:
// 设置PLL, WatchDog, 使能外设时钟
// 下面这个函数可以从DSP2833x_SysCtrl.c文件中找到..
   InitSysCtrl();

// 步骤 2. 初始化通用输入输出多路复用器GPIO:
// 这个函数在DSP2833x_Gpio.c源文件中被定义了
// 这个函数使GPIO控制类寄存器初始化到默认状态
// InitGpio();  // 本例不用此子函数

// 本例使用下面的GPIO配置
   Gpio_select();

// 步骤 3. 清除所有中断初始化中断向量表:
// 禁止CPU全局中断
   DINT;

// 初始化PIE控制寄存器到他们的默认状态.
// 这个默认状态就是禁止PIE中断及清除所有PIE中断标志
// 这个函数放在DSP2833x_PieCtrl.c源文件里
   InitPieCtrl();

// 禁止CPU中断和清除所有CPU中断标志
   IER = 0x0000;
   IFR = 0x0000;


//初始化PIE中断向量表,并使其指向中断服务子程序(ISR)
// 这些中断服务子程序被放在了DSP280x_DefaultIsr.c源文件中
// 这个函数放在了DSP2833x_PieVect.c源文件里面.
   InitPieVectTable();


// 步骤 4. 初始化片内外设:
// 这个函数可以在DSP280x_CpuTimers.c源文件中找到
//   InitCpuTimers();   // 这个例子仅初始化了Cpu定时器

// 步骤 5. 用户特定的代码


   for(;;)
   {


      GpioDataRegs.GPATOGGLE.bit.GPIO6= 1;// GPIO06翻转
      delay_loop();
      GpioDataRegs.GPATOGGLE.bit.GPIO6= 1;// GPIO06翻转
      delay_loop();
 

      GpioDataRegs.GPATOGGLE.bit.GPIO7= 1;// GPIO07翻转
      delay_loop();
      GpioDataRegs.GPATOGGLE.bit.GPIO7= 1;// GPIO07翻转
      delay_loop();



    }



}
//延迟子函数
void delay_loop()
{
    Uint32      i;
    Uint32      j;
    for(i=0;i<32;i++)
    for (j = 0; j < 100000; j++) {}
}
//GPIO初始化函数
void Gpio_select(void)
{


    EALLOW;
    GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 00;      // GPIO6为GPIO功能
    GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;      // GPIO6为输出功能

    GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 00;      // GPIO7为GPIO功能
    GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;      // GPIO7为输出功能
    EDIS;
    GpioDataRegs.GPATOGGLE.bit.GPIO6= 1;// GPIO06翻转  开始的时候为1  led 灯关闭

    GpioDataRegs.GPATOGGLE.bit.GPIO7= 1;// GPIO07翻转  开始的时候为1  led 灯关闭


}
//===========================================================================
// No more.
//===========================================================================






11.课程知识

1.首先所有的引脚 ,都可以借鉴别人写的文件,直接使用

2.课程知识!

GPIO
通用目的I/O模块(GPIO模块)内部配有复杂逻辑多路开关控制电路和复用寄存器,将数字I/O(GPIO)引脚、片上所有外设输入输出引脚、外部接口(XINTF)地址总线、数据总线、控制总线引脚在器件封装引脚上实现复用。

共88个GPIO,通过寄存器GPIOxMUX(x=A,B,C)进行设置。

GPIO分为3组,A端口对应引脚GPIO0~GPIO31(32位),

B端口对应引脚GPIO32~GPIO63(32位),

C端口对应引脚GPIO64~GPIO74(24位)。

当被配置为数字输入引脚时,具有输入滤波功能,通过GPIOSEL资格寄存器设定采样窗口宽度,对输入电平的干扰脉冲进行滤波。外部中断输入引脚XINT1~XINT7、不可屏蔽中断输入引脚XNMI是可编程的GPIO复用引脚。

void LED_Init(void)
{
	EALLOW;//关闭写保护
	SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;    // 开启GPIO时钟
 
	//LED1端口配置
	GpioCtrlRegs.GPCMUX1.bit.GPIO68=0;//设置为通用GPIO功能    0-通用输出 1-外设1输出 2-外设2输出 3-外设3输出
	GpioCtrlRegs.GPCDIR.bit.GPIO68=1;//设置GPIO方向为输出    1-输出 0-输入
	GpioCtrlRegs.GPCPUD.bit.GPIO68=0;//使能GPIO上拉电阻    0-使能上拉 1-禁止上拉
 
	GpioDataRegs.GPCSET.bit.GPIO68=1;//设置GPIO输出高电平
    //GpioDataRegs.GPCCLEAR.bit.GPIO68 = 1; //设置GPIO输出为低电平
 
	EDIS;//开启写保护
}

F28335有三种32位的I/O口,依次

1     PORTA(GPIO0-GPIO31), 

2      PORTB(GPIO32-GPIO63),

3     PORTC(GPIO64-GPIO87)

这些口都可以配置为普通的数字IO口同样也能被配置为外部接口。
这样涉及到了IO的寄存器,IO口共有三类寄存器:
控制寄存器、数据寄存器和中断控制寄存器。
1、 GPIO可以配置为数字I/O或外设I/O口,GPxMUX1(2):‘0’为数字I/O,‘1’为外设I/O口;
2: GPIO可以配置为内部电阻上拉功能,GPxPUD:‘0’为上拉,‘1’为禁止上拉
3: GPIO具有数字滤波功能,GPxQSEL1(2):量化输入寄存器,可以确定是3周期采样
还是6周期采样或者不用采样;
GPIO可以配置为内部电阻上拉功能,GPxPUD:‘0’为上拉,‘1’为禁止上拉,

4、 输入输出可配置,GPxDIR是控制每个引脚的输入或是输出,‘0’是输入,‘1’是输出;
当GPIO配置为数字I/O时注意:
1)28335引脚作为输出时,虽然可以通过设置GPADAT或GPBDAT改变输出端口的高低电平,但是单独写某一位时可能会使其它引脚产生误操作。为了避免这种现象的产生,改变输出引脚的高低电平时,应该使用

GPIOxSET(置位)

例子:  GpioDataRegs.GPCSET.bit.GPIO68=1;//设置GPIO输出高电平

GPIOxCLEAR(清零)

例子: GpioDataRegs.GPCCLEAR.bit.GPIO68 = 1; //设置GPIO输出为低电平

,GPIOxTOGGLE(反向,可以代替去翻操作)

例子:GpioDataRegs.GPATOGGLE.bit.GPIO6= 1;// GPIO06翻转

寄存器载入输出锁存寄存,GPIOxDIR配置方向,1为输出,0为输入.

 例子:GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;      // GPIO6为输出功能


2)当使用GPADAT的时候,一般是在初始化中,在函数中使用需要添加延时,否则可能达不到预定的输出状态。使用GPIOxSET(置位),GPIOxCLEAR(清零),GPIOxTOGGLE(反向)电平会立即变化,无需添加延时。
GPIOxSET, GPIOxCLEAR, GPIOxTOGGLE仅仅等于1时才有效,等于0无效
 

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值