STM32F4

[STM32F4xx] CUBEMX ver 4.2 버그 (HSE RCC Initialize Fail)

트라이문 2018. 9. 5. 21:02

2018 년 3월 18일에 일어난 업데이트 버그입니다. 예전 글을 1개씩 옮기는 중이라, 현재 일어난 일 인줄 착각 할까봐 이 글을 추가합니다.


CUBEMX 4.2 업데이트를 하고 나서,

KEIL 컴파일러 코드 생성 시, 심각한 버그가 발견 되었습니다.

HCLK 의 초기화가 잘못 되어서 프로그램이 동작되지 않습니다.

SystemClock_Config() 함수 내용 중, 1줄이 잘못 되었는데, 예전 코드로 수정해야 동작이 되네요.

SystemClock_Config() 예전 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void SystemClock_Config(void)
{
 
  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;
 
    /**Configure the main internal regulator output voltage 
    */
  __HAL_RCC_PWR_CLK_ENABLE();
 
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
 
    /**Initializes the CPU, AHB and APB busses clocks 
    */
    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
cs

SystemClock_Config() CUBEMX 4.20 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void SystemClock_Config(void)
{
 
  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;
 
    /**Configure the main internal regulator output voltage 
    */
  __HAL_RCC_PWR_CLK_ENABLE();
 
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
 
    /**Initializes the CPU, AHB and APB busses clocks 
    */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE;
cs


SystemClock_Config() CUBEMX 4.20 코드(수정)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void SystemClock_Config(void)
{
 
  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;
 
    /**Configure the main internal regulator output voltage 
    */
  __HAL_RCC_PWR_CLK_ENABLE();
 
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
 
    /**Initializes the CPU, AHB and APB busses clocks 
    */
  //RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE;
    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
cs