📄 main.c
字号:
#include "myapp.h"
#define REV_SND /*define : rcv undefine : snd*/
void INTR_init( void );
void EMIF_init(void);
#define UART_BASE_ADDR 0x400400
#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))
#define BUFSIZE 8 //接收缓存大小 单位为byte
char cString[17]={ "Hello PC!,Over|" },cReceive,cBuffer[BUFSIZE]={"\0x0"},cAnswer[16]={"Oh,you say"};
int test;
main()
{
EMIF_init();
INTR_init();
test=0;
//-----------------------------------------
LCR = 0x80;
DLL = 0x18;
DLM = 0x00;
LCR = 0x03;
FCR = 0x00;
MCR = 0x20;
#ifdef REV_SND
IER = 0x01;
#else
IER = 0x02;
#endif
for(;;);
}
void interrupt uart_int( void ) //串口中断服务程序
{
#ifdef REV_SND
test=RBR&0xff;
#else
THR=test;
#endif
}
void INTR_init( void )
{
IVPD=0xd0;
IVPH=0xd0;
IER0=0x04; // set according to UART
DBIER0=0x04;
IFR0=0xffff;
asm(" BCLR INTM");
}
void EMIF_init(void)
{
ioport unsigned int *ce21 =(unsigned int *)0x809; //ce2空间寄存器1
*ce21 = 0x1fff;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -