| 
        uint8 UART0Getch(void)<br />{<br />    uint8 err;<br /><br />    OS_ENTER_CRITICAL();<br />    while ((U0LSR & 0x00000001) == 0)<br />    {                                           /* 没有收到数据 */<br />        U0IER = U0IER | 0x01;                   /* 允许接收中断 */<br />        OSSemPend(Uart0Sem, 0, &err);           /* 等待接收数据 */<br />    }<br />    err = U0RBR;                                /* 读取收到的数据 */<br />    OS_EXIT_CRITICAL();<br />    return err;<br />} <br /><br />在OSSemPend的之前不是用OS_ENTER_CRITICAL();关中断了吗,那UART接收中断怎么进呢,难道在等待接收信号量切换到别的任务里打开了中断吗,那是那些语句呢,本人刚学UCOS操作系统,还不能理解,谢谢告之<br /> |   
     
  
 |