uart_Rx()
接收一个字符并将其存储在局部变量中,最后将该局部变量返回给该函数。我用计时器来控制执行时间。
我面临的新问题是,当循环中出现中断时,我的UART无法改变波特率。
以下是我读取字符的代码。
请告知我是否做错了。
char read()
{
flag0=0;
timer0_init();
timer_count =0;
uart_rxChar();
while(1)
{
if(timer_count<300)
{
if(uart_RxChar()>=97 && uart_RxChar()<=122)
{
uart_TxChar('k');
if(timer_count>=299)
{
LPC_GPIO2->FIOCLR=1<<13;
Glow_GreenLED();
delay_ms(100);
flag0 = 1;
}
else
{
Glow_RedLED();
LPC_GPIO2->FIOCLR = 1<<8;
break;
}
}
else if(timer_count>300)
{
LPC_GPIO2->FIOCLR = 1<<8;
Glow_RedLED();
delay_ms(100);
LPC_GPIO2->FIOCLR = 1<<13;
break;
}
}
}
//UART Receiving Function
char uart_RxChar()
{
while(util_IsBitCleared(LPC_UART0->LSR, SBIT_RBR)); //Wait till data is
received
char data = LPC_UART0->RBR;
return data;
}