📄 init0.h
字号:
#define BPS 115200
void dely(U32 tt)
{
U32 i;
for(;tt>0;tt--)
{
for(i=0;i<10000;i++){}
}
}
//////////////////
void UART0_Seng(U16 date)
{
rUTXH0 = date;
//while((rUTRSTAT0 & 0x1)==0x0);
}
////////////////
void UART0_rec(U16 date)
{
date=rURXH0;
if(date==0x01)
{
// rGPBDAT &= ~0X20;
dely(500);
//rGPBDAT |= 0x20;
}
while((rUTRSTAT0 & 0x1)==0x0);
}
//////////////////////
void UART0_SendStr(U8 const *str)
{
while(1)
{
if(*str =='\0' ) break;
UART0_Seng(*str++);
}
}
////////////////////////////////
void uart0_init()
{
rGPHCON = ( rGPHCON & (~(0xffff)) ) | (0xaaa0);//
//上拉电阻
rGPHUP = 0x0;
//设置串口线性控制器寄存器
rULCON0 |=(0<<6)|(0<<5)|(0<<2)|(3<<0);
//设置串口控制寄存器
rUCON0 |= (0<<10)//00 = PCLK
|(1<<9)//Tx interrupt Type = Level
|(1<<8)//Rx interrupt Type = Level
|(0<<7)//Rx Timer out disable
|(1<<6)//Rx error status interrupt enable
|(0<<5)//Loopback mode disable
|(0<<4)//Send break signal disable
|(1<<2)//Transmit mode (01 = inerrupt request or polling mode)
|(1<<0);//Receive mode (01 = interupt request or polling mode)
//设置串口FIFO控制寄存器
rUFCON0 |= (3<<6)//Tx FIFO Trigger Level(11 = 48-byte)
|(3<<4)//Rx FIFO Trigger Level(11 = 32-byte)
|(1<<2)//Tx FIFO reset
|(1<<1)//Rx FIFO reset
|(1<<0);//FIFO Eable
//设置串口波特率分频寄存器
rUBRDIV0 =(int) ( PCLK/(BPS*16) ) - 1;//PCLK, BPS
}
U8 Key_Scan( void )
{
dely(50);
if( (rGPGDAT&(1<< 0)) == 0 ) return 0x01 ;
else if( (rGPGDAT&(1<< 3)) == 0 ) return 2 ;
else if( (rGPGDAT&(1<< 5)) == 0 ) return 3 ;
else if( (rGPGDAT&(1<< 6)) == 0 ) return 4 ;
else if( (rGPGDAT&(1<< 7)) == 0 ) return 5 ;
else if( (rGPGDAT&(1<<11)) == 0 ) return 6 ;
else
return 0xff;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -