📄 uart_rec.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 + -