STM32F4使用UCOSIII,信號量無法喚起任務 str計數已經為非0
//RS485通訊任務函式 無法進入這個任務
void RS485_task(void *pdata)
{
OS_ERR err;
// CPU_SR_ALLOC();
pdata = pdata;
while(1)
{
OSSemPend(&sem_RS485,0,OS_OPT_PEND_BLOCKING,0,&err); //請求信號量
Slave_Service(); //485接收資料處理
OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_HMSM_STRICT,&err); //延時2ms
}
}
//發送信號量
//定時器1中斷服務程式
//TIM1_Init(200-1,84-1) //20ms中斷
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //溢位中斷
{
TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除中斷標志位
// TIM3_COUNT++;
// if(TIM3_COUNT >= 10) //如果超過100ms,完成接收
{
RS485_RX_STA = 1; //接收完成
OSSemPost(&sem_RS485,OS_OPT_POST_1,&err);//發送信號量
// TIM3_COUNT = 0; //資料計數清零
TIM_Cmd(TIM3, DISABLE); //關閉定時器中斷
}
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/46405.html
標籤:單片機/工控
下一篇:串口通信問題
