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

📄 sci_0.c

📁 非常实用的韩国dsp2407源代码
💻 C
字号:
/* -------------------------------------------------------------------------*/
/*	                 SCI test code for my2406/2407 board        			*/
/*																			*/
/*										     Copyleft(^^) Do-Yoon Kim       */
/*											 SCI_0			ver 2.0			*/
/*															2002.7.10	    */
/* 	矫府倔 烹脚阑 荤侩窍扁 困茄 例瞒甫 埃窜茄 抗力甫 烹秦 混旗焊磊.         */   
/* 	Com port 汲沥: 38400bps, 8bit, 1 stop bit, no parity, 					*/
/* ------------------------------------------------------------------------ */


#include <util.h> 


// 16柳荐肺 官操绰单 鞘夸茄 Look-up table                           
char num_str[] = "0123456789ABCDEF";
   
void bad_trap(void)
{
	while(1) ;
}     



// polling 规侥栏肺 茄 官捞飘 傈价
void SCISend( char data )
{                    
   	while( !(SCICTL2 & TXRDY) ) ;
	
	SCITXBUF = data;
}

// polling 规侥栏肺 茄 官捞飘 荐脚
UCHAR SCIReceive( void )
{
    UCHAR ch;
    while( !(SCIRXST & RXRDY) ) ;				
	ch = SCIRXBUF;	   
	return(ch);
}

	   
void SCIPrintf( char *str )
{        
	while( *str != '\0' )       // null point甫 惯斑且 锭鳖瘤 傈价
	{
		if (*str == '\n')
		{         
			SCISend(CR);
			SCISend(LF);
		}
		else SCISend(*str);
		str++;
	}
}	
     
     
void SCIPrintHex(int iii)
{
	SCISend(num_str[(iii>>12) & 0x0F]);
	SCISend(num_str[(iii>>8)  & 0x0F]);
	SCISend(num_str[(iii>>4)  & 0x0F]);
	SCISend(num_str[(iii)     & 0x0F]);
}          


void main(void)
{
	unsigned char    ch;
	char test[10];		               
	int temp;  

    
    
    DSPInit(PLLx4);			// PLL = x4, CPU 悼累 林颇荐 = CLK
  
    //----------------------------------------------------------------------
    //SCI 檬扁拳 鉴辑
    //1. SCI 葛碘阑 劝己拳
  	SCI_ENABLE;                 	// SCI module俊 努钒阑 牢啊茄促.
	
	//2. 矫府倔 烹脚俊 荤侩且 巧阑 IO 措脚 矫府倔 烹脚侩栏肺 汲沥
	SET(MCRA, (SCITXD|SCIRXD));		//MCRA.0:SCIRXD, MCRA.1:SCIRXD 
	
	//3. 傈价 痹距 汲沥
	SCICCR = 0x07;
	// |stop bits|Parity Odd/even|Parity enable|Loop back enable| 
	//  0000b => 1 stop bit, odd parity, parity disable, loop back disable
	// |IDLE/ADDR|char2|char1|char0|
	//  0111b => idle mode, 8 bit data
	//  0110b => idle mode, 7 bit data
	
	//4. TX, RX 劝己拳 汲沥
	SCICTL1 = 0x03; 
	// |reserved|RX ERR INT|SW reset|reserved| 				
	// 0000b => disabe RX error interrupt1 and software reset		
	// |TXWAKE|SLEEP|TX ENA|RX ENA|					
	// 0011b => TX, RX enable						
	
	//5. 牢磐反飘 汲沥
	SCICTL2 = 0xC0;
	// |TXRDY|TX EMPTY|reserved|reserved|:捞 滴 厚飘绰 read only 捞促.
	// |reserved|reserved|RX INT ENA|TX INT ENA|
	//  0000b => TX, RX interrupt disable
	//  0011b => TX, RX interrupt enable	
	
	//6. 烹脚 加档 汲沥
	SCIHBAUD = 0;
	SCILBAUD = 129;        // 38400bps
	
	//7. 	
	SCICTL1 = 0x23; 
	//----------------------------------------------------------------------
	
	
    // DSP焊靛俊辑 PC肺 促澜狼 皋技瘤甫 矫府倔 器飘甫 烹秦 傈价茄促.
    // PC率俊辑绰 ComMaster客 鞍篮 矫府倔 葛聪磐 橇肺弊伐捞 角青 吝捞绢具 茄促.
    // 单捞磐啊 拳搁俊 钎矫登瘤 臼栏搁, 楷搬 惑怕, 橇肺弊伐 惑怕 殿阑 混旗焊扼.
    // 汲沥篮 38400bps, 单捞磐 8bit, no parity, 1 stop bit 捞促.
    sprintf(test,"123456\n");
    SCIPrintf(test);
    
    
    SCIPrintf("Welcome to TMS320F2407 world\n");
	SCIPrintf("SCIPrintHex test\n");
	
	// 16厚飘 琼荤蔼阑 矫府倔 烹脚阑 烹秦 傈崔窍绰 窃荐  抛胶飘
	// SCIPrintHex甫 捞侩窍搁, 16厚飘 蔼阑 颊奖霸 ASCII 蔼栏肺 钎矫且 荐 乐促.
	temp = 0x12AB;
	SCIPrintHex(temp);
	
	
	// echo 扁瓷
	// PC俊辑 绢恫 巩磊甫 傈价窍搁 促矫 PC率栏肺 秦寸 巩磊甫 馆价茄促.
	// 悼矫俊 LED甫 掺芭唱 难辑, 巩磊甫 荐脚沁澜阑 舅赴促.
	 
	SET_PC_OUT(BIT1|BIT0);       // 器飘 C bit 0甫 I/O outport肺 汲沥
  	CLEAR(PORTC, BIT0);     // 器飘 C bit 0俊 Low甫 免仿(LED off) 

	while(1)                                
	{    
		ch = SCIReceive();
		if(ch == 'a')   TOGGLE(PORTC, BIT0);
		SCISend(ch);    				
	}
}
	

⌨️ 快捷键说明

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