FreeRTOS与STM32F7的HAL库中tick定时是怎么联系的
我用的是STM32F746+FreeRTOS。
现在在调试CAN,正常收发模式下,当不接另一个节点时,CAN发送就进入stm32f7xx_hal_can.c中的下面这个死循环--->
/* Check End of transmission flag */
while(!(__HAL_CAN_TRANSMIT_STATUS(hcan, transmitmailbox)))
{
/* Check for the Timeout */
if(Timeout != HAL_MAX_DELAY)
{
if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
{
hcan->State = HAL_CAN_STATE_TIMEOUT;
__HAL_CAN_CANCEL_TRANSMIT(hcan, transmitmailbox);
/* Process unlocked */
__HAL_UNLOCK(hcan);
return HAL_TIMEOUT;
}
}
}
其中Timeout = 10.
HAL_GetTick()的值貌似是不变。
FreeRTOS操作系统移植中写了
void vApplicationTickHook(void)
{
HAL_IncTick();
}
并定义了
#define configUSE_TICK_HOOK 1
请问:
1、freertos操作系统里的xTickCount和HAL库里的uwTick是怎么联系的,
2、CAN进入死循环的问题跟这个有关系吗?可能还有其他原因吗?