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

📄 uart_rec.c

📁 rs-232-C接口的驱动程序.比较简单适合入门者
💻 C
字号:
#include"stdio.h"#define uart1data       *(volatile unsigned int *)(0x80000070)#define uart1status     *(volatile unsigned int *)(0x80000074)#define uart1ctrl       *(volatile unsigned int *)(0x80000078)#define uart1scaler     *(volatile unsigned int *)(0x8000007c)#define uart2data       *(volatile unsigned int *)(0x80000080)#define uart2status     *(volatile unsigned int *)(0x80000084)#define uart2ctrl       *(volatile unsigned int *)(0x80000088)#define uart2scaler     *(volatile unsigned int *)(0x8000008c)#define uart3data       *(volatile unsigned int *)(0x8000015c)#define uart3status     *(volatile unsigned int *)(0x80000160)#define uart3ctrl       *(volatile unsigned int *)(0x80000164)#define uart3scaler     *(volatile unsigned int *)(0x80000168)#define secintmask      *(volatile unsigned int *)(0x800000d0)#define secintclear     *(volatile unsigned int *)(0x800000d8)#define intmask     	*(volatile unsigned int *)(0x80000090)#define intclear    	*(volatile unsigned int *)(0x8000009c)#define gpi1_dir     	*(volatile unsigned int*)(0x800000ac)#define gpi1_data     	*(volatile unsigned int*)(0x800000a8)extern void *catch_interrupt(void func(), int irq);void uart1(void);void uart2(void);void uart3(void);unsigned int i=0,j,k,recbuf[10],m;unsigned char temp;unsigned int re_flag=0;void uart1_int(int irq){	intmask=0x0;	intclear=0x8;	temp= uart1data;	uart1data=temp;	intmask=0x40c;}void uart2_int(int irq){		intmask=0x0;	intclear=0x4;	temp= uart2data;	uart2data=temp;	intmask=0x40c;}void uart3_int(int irq){	intmask=0x0;	secintmask = 0x0000000;	intclear=0x400;	secintclear = 0x1000000;	temp= uart3data;	printf("\n%x",temp);	for(i=0; i<0x12; i++); 	intmask=0x40c;	secintmask = 0x1400000;}main(){	unsigned int k;	gpi1_dir = 0xf;	gpi1_data = 0x8; 	uart1();	intmask=0x40c;	secintmask = 0x1400000;	while(1);}void uart1(void){	catch_interrupt(uart1_int, 3);	uart1ctrl=0x0;	uart1scaler=0x41;	//38400	20mhz	uart1ctrl=0x7;	 }void uart2(void){	catch_interrupt(uart2_int, 2);	uart2ctrl=0x0;	uart2scaler=0x41;	//38400	20mhz	uart2ctrl=0x7;	 }void uart3(void){	catch_interrupt(uart3_int, 10);	uart3ctrl=0x0;	uart3scaler=0x41;	//38400	20mhz	uart3ctrl=0x7;		//while(1)	{		for(j=0;j<0x5000;j++);		uart3data = 0x55;	}	for(j=0;j<0x5000;j++);	uart3data = 0xaa;		 }

⌨️ 快捷键说明

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