hal_delay에서 빠져나오지 못합니다 ㅠㅠ
글쓴이: shr3221 / 작성시간: 화, 2022/09/06 - 1:24오후
__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; }
Forums:
어떤 환경에서 저 코드를 실행하고 있나요? 그리고 저
어떤 환경에서 저 코드를 실행하고 있나요? 그리고 저 함수는 어느 라이브러리에서 왔나요?
일단
stm32 iar을 사용하고 hal라이브러리를 사용하고 있습니다.
수정했습니다.
이번에는 HardFault_Handler에 빠졌지만..ㅠ
이건
wifi쪽의 문제로 밝혀졌습니다. wifi모듈?이 느리고 메모리가 작네요ㅠㅠ
댓글 달기