⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 11.1.c

📁 数字信号处理器 原理、结构及应用基础-TMS320F28x所附光盘源程序C-C++ 刘和平等编著
💻 C
字号:
/**************************************************************
**功能描述: SPI程序,通过SPI操作8个LED数码管,显示数字1~8**
**************************************************************/
#include "DSP28_Device.h"
Uint16 table[10]={0xc000,0xf900,0xA400,0xB000,0x9900,0x9200,0x8200,
			   0xF800,0x8000,0x9000}; 
void spi_intial()                       //  SPI初始化子程序
{
 	SpiaRegs.SPICCR.all =0x0047;    //  使SPI处于复位模式, 下降沿, 8位数据  
    SpiaRegs.SPICTL.all =0x0006;     //  主控模式,一般时钟模式,使能talk,关闭SPI中断
	SpiaRegs.SPIBRR =0x007F;       //  配置波特率
	SpiaRegs.SPICCR.all =SpiaRegs.SPICCR.all|0x0080;  //  退出复位状态	 
	EALLOW;	
    GpioMuxRegs.GPFMUX.all=0x000F;              //  设置通用引脚为SPI引脚	 	
    EDIS;
  }
void gpio_init()
{ 
	EALLOW;
	GpioMuxRegs.GPAMUX.bit.TDIRA_GPIOA11=0;  // GPIOA11设置为一般I/O端口
	GpioMuxRegs.GPADIR.bit.GPIOA11=1;	       //  把GPIOA11设置为输出
    EDIS;
    GpioDataRegs.GPADAT.bit.GPIOA11=0;          //  GPIOA11端口为74HC595锁存信号
}
void main(void)
{
	unsigned int k=0;	
	InitSysCtrl();          //  系统初始化子程序,该程序包含在DSP28_SysCtrl.C中
	DINT;               //  关闭总中断
	IER = 0x0000;
	IFR = 0x0000;	
	spi_intial();           //  SPI初始化子程序
	gpio_init();	           //  GPIO初始化子程序
	while(1)
	{	
		GpioDataRegs.GPADAT.bit.GPIOA11=0;       //  给LACK信号一个低电平
		for(k=0;k<8;k++)
		{	
	 		SpiaRegs.SPITXBUF = table[k+1];         //  给数码管送数
    			while(SpiaRegs.SPISTS.bit.INT_FLAG !=1){} 		
    	 		SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;	
     	}
     	GpioDataRegs.GPADAT.bit.GPIOA11=1;      //  给LACK信号一个高电平为锁存HC595
       	for(k=0;k<10;k++){}	
	}    
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -