金牌会员 
   
	- 积分
 - 2483
 
        - 金钱
 - 2483 
 
       - 注册时间
 - 2014-4-26
 
      - 在线时间
 - 173 小时
 
 
 
 | 
 
1金钱 
void InitUart(void) 
{  
 
    PERCFG &= ~0x02;     //USART1为位置1 
    P2DIR |= 0x40; //优先级USART1 >USART0 >定时器1 
    P0SEL |= BV(4) | BV(5);//配置P0.4和P0.5为外设,非GPIO 
    P2SEL |= BV(6); //功能优先 
    U1CSR |= BV(7); //配置当前为UART,非SPI 
    U1CSR |= BV(6);//允许接收数据   
    U1UCR |= 0x02;        //禁止流控制,8bits,无校验位,1位停止位 
                        //起始位低电平,停止位高电平 
 
    U1GCR |= 11; //根据上述波特率设置表格设置115200波特率 
    U1BAUD |= 216;// 根据上述波特率设置表格设置115200波特率 
    UTX1IF = 0;//位寄存器,直接操作,清除中断标志 
    URX1IF = 0; 
    IEN0 |= BV(3);//打开接收中断 
    EA=1;//打开总中断 
} 
#pragma vector = URX1_VECTOR   
__interrupt void UART1_ISR(void)   
{   
    URX1IF = 0;       // 清中断标志  ; 
 
    UartSendByte(U1DBUF); //收到后立即发送出去 
 
} 
 
 
 |   
 
 
 
 
 
 |