11.2.c

来自「《数字信号处理器原理、结构及应用》所附光盘的资料,关于tms320f2812的一」· C语言 代码 · 共 51 行

C
51
字号
/******************************************************************************
**功能描述: SPI程序,对MAX5742的OUTA通道DA0UT1使能并置数输出**
******************************************************************************/
#include "DSP28_Device.h"
//  SPI初始化子程序
void spi_intial()
 {
 	SpiaRegs.SPICCR.all = 0x004F;    //  使SPI处于复位模式, 下降沿,16位数据  
	SpiaRegs.SPICTL.all = 0x0006;    // 主控模式, 一般时钟模式,使能talk, 关闭SPI中断
	SpiaRegs.SPIBRR = 0x007F;                      //  配置波特率
	SpiaRegs.SPICCR.all = SpiaRegs.SPICCR.all|0x0080;  //  退出复位状态	 
	EALLOW;	
    GpioMuxRegs.GPFMUX.all = 0x000F;               //  设置通用引脚为SPI引脚	 	
    EDIS;
  }
//  GPIO初始化子程序
void gpio_init()
{ 
	EALLOW;
	GpioMuxRegs.GPFMUX.bit.XF_GPIOF14 = 0;  //  GPIOF14设置为一般I/O端口
	GpioMuxRegs.GPFDIR.bit.GPIOF14 = 1;	   //  把GPIOF14设置为输出			
    EDIS;
    GpioDataRegs.GPFDAT.bit.GPIOF14 = 1; 	   //  GPIOF14=1;该端口为使能信号
}

void main(void)
{
	unsigned long int i = 0;
	InitSysCtrl();       //  系统初始化子程序,该程序包含在DSP28_SysCtrl.C中
	DINT;            //  关闭总中断
	IER = 0x0000;
	IFR = 0x0000;	
	spi_intial();        //  SPI初始化子程序
	gpio_init();	        //  GPIO初始化子程序
	while (1)
	{	
		GpioDataRegs.GPFDAT.bit.GPIOF14 = 0;
	 	SpiaRegs.SPITXBUF = 0xf000;                //  初始化指令:DAC_A使能
    		while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){}
    		SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;
    		GpioDataRegs.GPFDAT.bit.GPIOF14 = 1;
    		for(i = 0; i<10; i++){}
    		GpioDataRegs.GPFDAT.bit.GPIOF14 = 0;
	 	SpiaRegs.SPITXBUF = 0x0fff;                //  DAC_A置数
    		while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){}
   	 	SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;
    		GpioDataRegs.GPFDAT.bit.GPIOF14 = 1; 
    		for(i=0; i<10; i++){}
	}
}

⌨️ 快捷键说明

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