標(biāo)題: STM32F030F4P6使用內(nèi)部晶振,怎么設(shè)置啟動代碼 [打印本頁]

作者: sr861126    時間: 2023-2-16 17:11
標(biāo)題: STM32F030F4P6使用內(nèi)部晶振,怎么設(shè)置啟動代碼
片內(nèi)晶振使用

作者: lzh085    時間: 2023-2-16 19:11
在使用STM32F030F4P6芯片內(nèi)部晶振時,需要在啟動代碼中配置芯片的時鐘。以下是使用STM32CubeIDE生成的默認(rèn)啟動代碼中配置內(nèi)部晶振的示例代碼,你可以參考:
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /* Configure the main internal regulator output voltage */
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

  /* Initializes the RCC Oscillators according to the specified parameters
  in the RCC_OscInitTypeDef structure. */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }

  /* Initializes the CPU, AHB and APB busses clocks */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  {
    Error_Handler();
  }

在這段代碼中,首先通過 __HAL_PWR_VOLTAGESCALING_CONFIG() 函數(shù)配置芯片電壓,并初始化 RCC_OscInitTypeDef 和 RCC_ClkInitTypeDef 結(jié)構(gòu)體。然后,通過 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI 將內(nèi)部高速時鐘(HSI)作為時鐘源,通過 RCC_OscInitStruct.HSIState = RCC_HSI_ON 打開內(nèi)部高速時鐘。最后,通過 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI 將內(nèi)部高速時鐘作為系統(tǒng)時鐘源,并將其他時鐘分頻設(shè)置為1。

注意,在使用內(nèi)部晶振時,需要使能內(nèi)部高速時鐘(HSI),并將其作為系統(tǒng)時鐘源。如果需要使用其他時鐘源,可以根據(jù)需要進(jìn)行修改。同時,根據(jù)實際情況,需要配置FLASH的讀取等待狀態(tài)(latency)。
作者: Hephaestus    時間: 2023-2-16 19:12
在CubeMX里面設(shè)置使用HSI,會自動生成代碼。
作者: sr861126    時間: 2023-2-17 08:13
lzh085 發(fā)表于 2023-2-16 19:11
在使用STM32F030F4P6芯片內(nèi)部晶振時,需要在啟動代碼中配置芯片的時鐘。以下是使用STM32CubeIDE生成的默認(rèn) ...

感謝!我試試,看看行不行




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1