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);
}
}
为什么我运行程序时没等到信号量,直接跳到红字延时那里了,请大家指导下,谢谢~
和我遇到 的问题一个样子 貌似是 程序逻辑混乱 我的是 程序运行 Swich 语句 本来运行完 Case 2 后 Break ; 跳出 但是在测试的时候 是 Break 然后 跳刀case 1 的 break 最后才跳出 Swich 语句。
谢谢,我知道啦,是创建信号量时,创建了一个应该是Create(0)的。
回复 板凳 xiaoxiaoluohen 的帖子
可以说详细点么?因为如果使用OSSemCreate(0)的话,也是会等待的啊。直接跳过这一段程序应该有其他的问题吧