hal_delay에서 빠져나오지 못합니다 ㅠㅠ

shr3221의 이미지

 
__weak uint32_t HAL_GetTick(void)
{
  return uwTick;
}

 
__weak void HAL_Delay(uint32_t Delay)
{
  uint32_t tickstart = HAL_GetTick();
  uint32_t wait = Delay;
 
  /* Add a freq to guarantee minimum wait */
  if (wait < HAL_MAX_DELAY)
  {
    wait += (uint32_t)(uwTickFreq);
  }
 
  while ((HAL_GetTick() - tickstart) < wait)
  {
  }
}

코드를 실행시키면 첫 번째 코드와 두번째 코드 while문에서 안나갑니다. hal_delay함수를 실행시켰을 때 마지막 루프를 돌고 나서 그러네요 ㅠㅠ

int bw16_send_cmd ( UART_HandleTypeDef *_uart, uint8_t * _cmd , int _cmdSize)
{
    uint8_t _carriage_return = '\r';
    uint8_t SENDCR1[2] = {0x0d,0x0a};
 
    HAL_UART_Transmit(_uart, _cmd, _cmdSize, 0xff);
    HAL_UART_Transmit(_uart, SENDCR1, 2, 0xff);
 
    HAL_Delay(3000);
 
    return 0; 
}
익명 사용자의 이미지

어떤 환경에서 저 코드를 실행하고 있나요? 그리고 저 함수는 어느 라이브러리에서 왔나요?

shr3221의 이미지

stm32 iar을 사용하고 hal라이브러리를 사용하고 있습니다.

shr3221의 이미지

이번에는 HardFault_Handler에 빠졌지만..ㅠ

shr3221의 이미지

wifi쪽의 문제로 밝혀졌습니다. wifi모듈?이 느리고 메모리가 작네요ㅠㅠ