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

📄 serial.c

📁 瑞泰TMS320VC33目标板的串口通讯测试程序
💻 C
字号:
extern cregister unsigned int IE,IF,ST;
interrupt void c_int03(void);

#define UART_BASE_ADDR		0xC00000 
#define UART_REV_ADDR       *(int *)0xC00000 
#define UART_RESTORE_ADDR   *(int *)0xC00002

#define RBR		*((int *)(UART_BASE_ADDR+0))	
#define THR		*((int *)(UART_BASE_ADDR+0))	
#define IER		*((int *)(UART_BASE_ADDR+1))
#define IIR		*((int *)(UART_BASE_ADDR+2))	
#define FCR		*((int *)(UART_BASE_ADDR+2))	
#define LCR		*((int *)(UART_BASE_ADDR+3))
#define MCR		*((int *)(UART_BASE_ADDR+4))
#define LSR		*((int *)(UART_BASE_ADDR+5))
#define MSR		*((int *)(UART_BASE_ADDR+6))
#define SCR		*((int *)(UART_BASE_ADDR+7))
#define DLL		*((int *)(UART_BASE_ADDR+0))
#define DLM		*((int *)(UART_BASE_ADDR+1))

unsigned char inp_buffer[0x10];  
unsigned char uartstate;
int i, flag, index;

unsigned int *VECS=(unsigned int *)0x809fc0;  

main()
{
	flag  = 0;
	index = 0;
	
	IE = 4;     
	IF = 0;  
	ST = 0x2000; 
	
	for(i=0; i<16; i++)
	{
	 	inp_buffer[i]=0;
	}  

	*(VECS+3) = 0x60000000 | (unsigned int)c_int03; 
	
    LCR = 0x80; 
    DLL = 0x18;    	/* 9600 */   
	DLM = 0x00;  
   
    LCR = 0x03;     /* 8 bits, no parity and  one stop bit */ 
    FCR = 0x01;
    MCR = 0x20;
    IER = 0x01;
    
    for(;;){}

}
 
interrupt void c_int03(void)
{                                  
    /* the following is to output data to MAX232,only one a case */
    /* the following is to input data from MAX232 */ 
	
	uartstate = LSR;
    inp_buffer[index] = RBR&0xff; 
    THR = inp_buffer[index];
    
    index++;    
    index = index%0x10;   
}

⌨️ 快捷键说明

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