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

📄 mysci.c

📁 基于DSP(2812)的数据处理以及串口通信模块
💻 C
字号:
#include "DSP281x_Device.h"
#include "DSP281x_Examples.h"


void scia_loopback_init(void);
void scia_fifo_init(void);	
void scia_xmit(int a);
//void error(int);
interrupt void scia_rx_isr(void);
interrupt void scia_tx_isr(void);


//Uint16 LoopCount;
//Uint16 ErrorCount; 

void main(void)
{
    //Uint16 SendChar;
    Uint16 ReceivedChar;
    
    //初始化 系统寄存器
    // In the DSP281x_SysCtrl.c file.
	InitSysCtrl();
    
    //设置GPIO
    //in the DSP281x_Gpio.c file.
    EALLOW;
    GpioMuxRegs.GPFMUX.all=0x0030;	// 选择GPIOs作为Sci口 
                                    // 设置 F MUX - x000 0000 0011 0000
    EDIS;

      // the DSP28_DefaultIsr.c file.

      // 初始化中断向量表,清楚所有CPU中断
	DINT;
	IER = 0x0000;
	IFR = 0x0000;

      //初始化PIE寄存器
      // In DSP281x_PieVect.c.
	  InitPieVectTable();  

      //启动中断
      // In the DSP281x_PieCtrl.c file.   
      EnableInterrupts();
	
    //LoopCount = 0;
    //ErrorCount = 0;
    
    scia_fifo_init();	  
    scia_loopback_init(); 
	
//	SendChar = 1;				


	for(;;)
    { 
//     scia_xmit(SendChar);
       while(SciaRegs.SCIFFRX.bit.RXFIFST !=1) { } // 等待XRDY =1这时接受寄存器为空
  
       ReceivedChar = SciaRegs.SCIRXBUF.all;			
       //if(ReceivedChar != SendChar) error(1);

	   //ReceivedChar++ ;
	   ReceivedChar=ReceivedChar+2;
	   ReceivedChar &= 0x00FF;
	   scia_xmit(ReceivedChar);	
    }

} 	



//void error(int ErrorFlag)
//{
//      ErrorCount++;
//}

void scia_loopback_init()
{    

 	SciaRegs.SCICCR.all =0x0007;  	 // 1个停止位,无自循环
                                  	 // 无奇偶效验位,8 bits,
	SciaRegs.SCICTL1.all =0x0003; 	 // 启动 TX, RX, 启动SCICLK, 
                                  	 // 静止 RX ERR, SLEEP, TXWAKE
	SciaRegs.SCICTL2.all =0x0003; 
	SciaRegs.SCICTL2.bit.TXINTENA =1;
	SciaRegs.SCICTL2.bit.RXBKINTENA =1;
   	 SciaRegs.SCIHBAUD    =0x0001;		//波特率设置
    	SciaRegs.SCILBAUD    =0x00C3;
	SciaRegs.SCICCR.bit.LOOPBKENA =0; // 静止自测试循环模式 
	SciaRegs.SCICTL1.all =0x0023;     // 使SCI退出恢复模式
}

void scia_xmit(int a)
{
    SciaRegs.SCITXBUF=a;
}    

void scia_fifo_init()										
{
    SciaRegs.SCIFFTX.all=0xE040;
    SciaRegs.SCIFFRX.all=0x204f;
    SciaRegs.SCIFFCT.all=0x0;
    
}  

⌨️ 快捷键说明

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