同志們,最近寫一個單片機輸入捕獲程式,除錯到if(htim->Channel==HAL_TIM_ACTIVE_CHANNEL_2)就直接跳出去了,這是怎么回事啊
uj5u.com熱心網友回復:
一行代碼能看出啥?uj5u.com熱心網友回復:
跳出去是跳哪去?如果只是沒有執行這個if,那只能證明條件沒有滿足uj5u.com熱心網友回復:
說的有道理給你點個贊
uj5u.com熱心網友回復:
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim){ if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) //if the first value is not HALst_Captured = 1; //set the first captured as tufalling edge __HAL_TIM_SET_CATIM_CHANNEL_2 ,TIM_INPUTCHANNELPOLARITY_FALLING); } else if (Is_First_Captured == 1) //if the first is alrea2 =HAL_TIM_ReadCapturedValue (htim,TIM_CHANNEL_2); //read second value __HA直接L_TIM_SET_COUNTER(htim,0); if (IC_Val2 > IC_Val1 ) { Difference =IC_Val2- IC_Val1 ; } Is_First_Captured = 0; //set it back to false __HAL_TIM_SET_CAPTUREPOLARITY (htim,TIM_CHANNEL_2 ,TIM_INPUTCHANNELPOLARITY_RISING); 不執行后面,大佬知道為什么不滿足條件嗎?用的cubemx配置后加的程式} } }
uj5u.com熱心網友回復:
keil上debug,看看暫存器,多半是你的中斷沒有配置正確。還有,你要看看keil,不要選到仿真去了,選下載除錯
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/101476.html
標籤:單片機/工控
上一篇:大家一起學鴻蒙OS(HarmonyOS)應用程式開發視頻教程
下一篇:排序演算法(C++)
