UART在LPC1768中接收

时间:2017-06-02 12:36:29

标签: c embedded uart

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;

}

0 个答案:

没有答案