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

📄 main.c

📁 dsp2407串口发送接受程序
💻 C
字号:
#include "2407c.h"

//系统初始化
int receivea[40]={0x0};
int ad_result;
int j=0,n;
extern int jj=0,kkk=0,ppp=0;
int aa[6];
int SCI_RXDATA;
int delay()
{int jj;
  for(jj=0;jj<10;jj++)
  jj=jj;}
//**********************************
void Init()
{
  *SCSR1=0X83FE;
  *WDCR=0X0E8;
  asm( " SETC INTM " );
  asm(" CLRC OVM " );
  asm(" CLRC CNF " );
  asm(" CLRC SXM " );  
  *IMR=0X0010;//SCI低优先级中断
 *IFR=0X0FFFF;
 *MCRA=(*MCRA)|0X3;
 *PEDATDIR=0X0FF00;
 *PADATDIR=(*PADATDIR | 0x0FCFF)&0x0FC00;
 *PBDATDIR=(*PBDATDIR | 0x0FFFF)&0x0FFFF;
 *MCRC=0x00;
 *PEDATDIR=(*PEDATDIR | 0x0FFFF)&0x0FFFF;
 asm(" CLRC INTM ");//开中断
 }
//SCI初始化
void InitSci()
{
 asm(" SETC INTM ");   //禁止总中断
 *MCRA=(*MCRA)|0X3;
 *SCICCR=0X67;
 *SCICTL1=0X13;
 *SCICTL2=0X03;
 *SCIHBAUD=0X02;
 *SCILBAUD=0X07;
 *SCICTL1=0X33;
 *SCIPRI=*SCIPRI|0X68;
 *MCRA=0x3;
 *IMR=0X10;
 asm(" CLRC INTM ");   //使能总中断
  *WDKEY=0XAA;*WDKEY=0X55;
}
//*****************************************
void sci_send()               
{  
   
    for (n=0;n<5;n++)
      { *SCITXBUF=0x123;
       delay();     
	   while((*SCICTL2 & 0x0080)==0);
	  } 
}
//***********************************************
//串口中断服务程序  
void int1_sci()
{ int NNN;
  while(jj<40)   //存储数据在receive[0-40]
  {
   receivea[jj]=*SCIRXBUF;
   if(receivea[jj]==0x55)
       {
       NNN=jj+1;
       jj=0;
       goto bb;
       }//0x55数据结束标志
   jj=jj+1;
   goto aa;
  }
  *WDKEY=0XAA;*WDKEY=0X55;
bb:
   //data_handle();
   //for(ppp=0;ppp<100;ppp++)
   //{
   /*if(numled0==0)
	{
		numled0=2000;
		if((PBDATDIR & 0x0001)==0x0001) 
			PBDATDIR=PBDATDIR & 0xFFFE;    	//IOPB0=0;LED灭  
		else
			PBDATDIR=PBDATDIR |0x0101;     	//IOPB0=1;LED亮 
	}*/
   //aa[n]=receivea[jj];
   sci_send();
   //ad_do();           
   //ad_hand();//AD采样100次
   //}
   asm(" CLRC INTM ");
aa: 
   asm("  CLRC INTM ");    //开中断
}
//*****************************************************
main()
{
    Init();
    InitSci();
    //ad_init();
    while(1){                        
             *WDKEY=0XAA;
             *WDKEY=0X55;
             }
}
//********************************************************
void interrupt uarttr()
 {
  switch(*PVIR)
  {    case 6: int1_sci(); 
                break;
   default: break;
  }
 }
void interrupt nothing()
{return;}

 

⌨️ 快捷键说明

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