1
Eclipse Neon GNU ARM Eclipse Plugin Vers이 있습니다. 3.2.1 및 STM32F411RE 핵위원회. 나는이 가이드를 따라 갔다 : http://gnuarmeclipse.github.io/GNU ARM Eclipse 3.2.1 빈 템플릿 HAL_Delay가 inf 루프를 발생시킵니다.
성공적으로 툴체인을 설치하고, 작동하는 템플릿으로 Blinky 프로그램을 만들었으며, Blinky prog를 HAL_Delay(ms)
기능과 함께 변경할 수도있다.
그러나 빈 프로젝트를 만들면 코드가 HAL_Delay
함수에 도달 할 때마다 무한 루프가 발생합니다.
이 코드는 온라인 컴파일러와 함께 작동 : 그것은 HAL_Delay
에 도달하면
int main(){
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin =GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
// Infinite loop
while (1)
{
HAL_Delay(2000);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(2000);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
}
}
그러나 이클립스에서 나는 무한 루프를 얻을. 하지만이 기능은 Blinky 템플릿에서 작동하지만 init @ SysCLK는 둘 다 동일합니다.
누군가 내가 여기에없는 것을 말해 줄 수 있습니까?
편집 : HAL_Delay가 작동하도록했습니다. 해결책은 원본 폴더에있는 _inithardware.c를 수정하는 것이 었습니다. line 70, // RTOSes를 사용할 때 사용하지 않도록 설정하십시오. RTOSes에는 자체 처리기가 있으므로 사용하지 마십시오. #if 1 <<<이 값이 1로 변경되기 전에 0이었습니다. 또한 HSE 대신 HSI를 사용하여 SystemClock_Config에서 elseif를 사용했습니다. HSE 부분 인 경우 HAL_Delay()가 작동하는 방식으로 주변에서 의견을 말했습니다. –
독자가 솔루션을 찾을 수 있었다면 의견을 업데이트하는 대신 자신의 질문에 답할 수 있습니다. –
@ bence 예 그것은 늦었고 그 버튼을 보지 못했습니다. P, 끝났습니다. –