【研旭TMS320F28335 DSP实用板试用体验】+GPIO控制LED灯

  • Jason_Lee
  • LV3工程师
  • |      2018-01-29 19:17:37
  • 浏览量 1700
  • 回复:0
原理图解析: LED原理图,D1和D2连接PWM7和PWM8 底板J2接插件,PWM7、PWM8连接PWM4A、PWM4B 核心板J5接插件PWM4A、PWM4B 核心板,PWM4A、PWM4B连接GPIO6、GPIO7 GPIO原理解析: 在本设计中,只需要GPIO控制LED灯的亮灭。在DSP中控制一个GPIO用到的寄存器有GPACTRL、GPAQSEL、GPADIR、GPAMUX和GPIOAPUD共5个寄存器。本设计中没用到中断,所以GPIO的中断寄存器不做介绍。 GPACTRL:指定输入引脚的采样周期(与本设计无关); GPAQSEL:配置采样数,(滤波数),当干扰信号持续采样周期小于该寄存器设置的采样周期时,干扰信号被滤除。 GPADIR:设置GPIO的输入输出方向。本设计设置为输出。 GPAMUX:GPIO的复用开关,GPIO可以当作通用数字量IO或者外设引脚。 GPIOPUD:引脚上拉选项。 本设计中将IO设置成通用数字量输出IO,然后控制IO的高低电平,最终显示为LED的亮灭。 程序解析: #include "DSP2833x_Device.h" // DSP2833x #include "DSP2833x_Examples.h" // DSP2833x #define LED1 GpioDataRegs.GPADAT.bit.GPIO6 #define LED2 GpioDataRegs.GPADAT.bit.GPIO7 void configtestled(void); void main(void) { InitSysCtrl();//系统初始化,主要包括时钟,看门狗和外设时钟 DINT;//关闭中断 InitPieCtrl();//初始化PIE中断,清除中断标志 IER = 0x0000;//失能CPU中断和中断标志 IFR = 0x0000; InitPieVectTable();//初始化PIE的向量表 configtestled();//配置IO LED1=1; DELAY_US(10); LED2=0; DELAY_US(10);、 //控制LED交替显示 while(1){ LED1=~LED1; LED2=~LED2; DELAY_US(1000000); LED1=~LED1; LED2=~LED2; DELAY_US(1000000); } } void configtestled(void) { EALLOW; GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0; //GPIO为通用数字IO GpioCtrlRegs.GPADIR.bit.GPIO6 = 1; //设置成输出模式 GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0; // GpioCtrlRegs.GPADIR.bit.GPIO7 = 1; EDIS; } 最终效果:
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子