[讨论] 信号量的问题

xiaoxiaoluohen   2012-9-8 15:49 楼主
while(1)
{
     OSSemPend(poeUart0ReviceSem, 0, &iUart0Err);
     uiNum = uartFifoStatus(UART0, RX_FIFO);                                 /*  查看收到多少数据            */
     uartRead(UART0,uiReviceBuf0, uiNum, NULL);                              /*  读数据                      */
     if(uiReviceBuf0[1]==129)
     {
        
         x=uiReviceBuf0[4]+uiReviceBuf0[3]*256;                           
         y=uiReviceBuf0[6]+uiReviceBuf0[5]*256;
         
     }
   while(uiReviceBuf0[1]!=128)
                 {
                     OSTimeDly(1);
                 }

}

为什么我运行程序时没等到信号量,直接跳到红字延时那里了,请大家指导下,谢谢~

回复评论 (3)

和我遇到 的问题一个样子  貌似是 程序逻辑混乱  我的是 程序运行 Swich 语句 本来运行完 Case 2 后 Break ; 跳出   但是在测试的时候 是 Break 然后 跳刀case 1 的 break  最后才跳出 Swich 语句。
点赞  2012-9-11 16:53
谢谢,我知道啦,是创建信号量时,创建了一个应该是Create(0)的。
点赞  2012-9-13 16:55

回复 板凳 xiaoxiaoluohen 的帖子

可以说详细点么?因为如果使用OSSemCreate(0)的话,也是会等待的啊。直接跳过这一段程序应该有其他的问题吧
点赞  2012-9-13 17:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复