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

📄 main.c

📁 本程序是实现DSP系统与上位机串口通讯的程序
💻 C
字号:
#include "DspRegDefine.h" 
extern void Send();
extern void Recv();
extern void Sendinit();
extern void DRDY();

#define LEN 256
int  data_buff[LEN];

//--------------------------------------------------------------------
// 函数名称 : InitDSP(void)
// 函数说明 : 初始化CPU
void InitDSP(void)
{	 asm(" nop ");
	 asm(" nop ");
	 asm(" nop ");	
    *(unsigned int*)CLKMD=0x0;         //switch to DIV mode clkout= 1/2 clkin
     while(((*(unsigned int*)CLKMD)&01)!=0);
    *(unsigned int*)CLKMD=0x9007;      //switch to PLL X 4 mode  
	*(unsigned int*)PMST=0x3FF2;	
	*(unsigned int*)SWWSR=0x7fff;	
	*(unsigned int*)SWCR=0x0001;
    *(unsigned int*)BSCR=0xf800;
	asm(" ssbx intm "); //Disable all mask interrupts 	
	*(unsigned int*)IMR=0x0;
	*(unsigned int*)IFR=0xffff;
    *(unsigned int*)TCR = 0xffff;			
    *(unsigned int*)PRD = 0x0029;			
  	*(unsigned int*)TCR = 0x04E0;
    asm(" nop ");
    asm(" nop ");
	asm(" nop ");
} 
/*
***********************************************************
- 函数名称 : void Delay(int numbers)
- 函数说明 : 延时
***********************************************************
*/
void Delay(long int m)
{
    long int i,j;
    for(i=0;i<4000;i++)
    {  for(j=0;j<m;j++)
       {}
    }
}
/*
*************************************************************************
- 函数名称 : InitMCBSP_SPI
- 函数说明 : MCBSP0设置为SPI模式
- 输入参数 : 无
- 输出参数 : 无
- 补充说明 : 
**************************************************************************
*/
void InitMCBSP_SPI(void)
 
{ //复位 McBSP0
  *(unsigned int*)McBSP0_SPSA=0x0000;//SPCR1
  *(unsigned int*)McBSP0_SPSD=0x0000;//设置SPCR1.0(RRST=0)                  
  *(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2
  *(unsigned int*)McBSP0_SPSD=0x0000;//设置SPCR1.0(XRST=0)                          
  Delay(0);                  //延迟 4000*CPU 时钟周期     等待复位稳定                        
   //配置 McBSP0为 SPI 模式
  *(unsigned int*)McBSP0_SPSA=0x0000;//SPCR1
  *(unsigned int*)McBSP0_SPSD=0x1800; 
  *(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2
  *(unsigned int*)McBSP0_SPSD=0x0000; 
  *(unsigned int*)McBSP0_SPSA=0x000E;//PCR
  *(unsigned int*)McBSP0_SPSD=0x0A0C;
  *(unsigned int*)McBSP0_SPSA=0x0002;//RCR1
  *(unsigned int*)McBSP0_SPSD=0x0040;//    
  *(unsigned int*)McBSP0_SPSA=0x0003;//RCR2
  *(unsigned int*)McBSP0_SPSD=0x0041;//  
  *(unsigned int*)McBSP0_SPSA=0x0004;//XCR1
  *(unsigned int*)McBSP0_SPSD=0x0040;
  *(unsigned int*)McBSP0_SPSA=0x0005;//XCR2
  *(unsigned int*)McBSP0_SPSD=0x0041;
  *(unsigned int*)McBSP0_SPSA=0x0006;//SRGR1
  *(unsigned int*)McBSP0_SPSD=0x0009;       
  *(unsigned int*)McBSP0_SPSA=0x0007;//SRGR2                                                           
  *(unsigned int*)McBSP0_SPSD=0x2000;
  *(unsigned int*)McBSP0_SPSA=0x0001;//SPCR2    
  *(unsigned int*)McBSP0_SPSD=(*(unsigned int*)McBSP0_SPSD)|0x0040;                            
  Delay(0);                  //延迟 4000*CPU 时钟周期 等待时钟稳定                           
  *(unsigned int*)McBSP0_SPSA=0x0000;//SPCR1    
  *(unsigned int*)McBSP0_SPSD=(*(unsigned int*)McBSP0_SPSD)|0x0001;//RRST=1

⌨️ 快捷键说明

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