金牌会员
- 积分
- 2469
- 金钱
- 2469
- 注册时间
- 2014-4-26
- 在线时间
- 172 小时
|
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); //收到后立即发送出去
}
|
|