/**********************************************************************************
* 名 称 :UART0_init
* 功 能 :UART0作为主串口,初始化;初始化485输出控制脚
* 入口参数 :unsigned int baud - 波特率
* 出口参数 :无
***********************************************************************************/
static void UART0_init(unsigned int baud)
{
int iar2;
unsigned long sys_sclk=GetSCLK();
unsigned short Divisor =sys_sclk / (baud << 4);
*pPORTG_FER |= ( PG12 | PG13 );
ssync();
*pPORTG_MUX &= ~(PG12 | PG13 );
ssync();
*pUART0_GCTL=UCEN; //使能UART0时钟
*pUART0_DLL=Divisor& 0x00FF;
*pUART0_DLH=(Divisor>>8)& 0x00FF;
*pUART0_LCR=WLS_8; //1个起始位,8个数据位,1个停止位,没有奇偶校验
*pUART0_IER_SET= ERBFI;//|ETBEI; //允许发送和接收中断
*pDMA9_CONFIG = WDSIZE_8 | DI_EN | SYNC | FLOW_STOP;
*pDMA9_X_MODIFY = 1;
iar2 = *pSIC_IAR2; //发送、接收优先级都为IVG11
iar2 &=0x00FFFFFF;
iar2 |=0x44000000;
*pSIC_IAR2=iar2;
*pSIC_IMASK0 |= (IRQ_UART0_RX|IRQ_UART0_TX); //使能UART0接收中断,中断注册函数集中处理
}