衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32F4時鐘配置的操作步驟

CHANBAEK ? 來源:頭條號秋天滴風 ? 作者:頭條號秋天滴風 ? 2023-04-21 11:29 ? 次閱讀

本文將介紹STM32F4時鐘配置的操作步驟、并對比時鐘配置前后LED外設閃爍的快慢以及對應代碼的講解

一、使用默認時鐘配置去執行代碼、獲取LED閃爍的周期

如下圖所示我們默認使用的是HSI(內部高速時鐘)且不進行任何配置

最后我們系統時鐘、以及外設獲得的時鐘頻率為16MHz

主函數中的代碼如下:

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART3_UART_Init();
  /* USER CODE BEGIN 2 */
	printf("this is clock system test2\\n");
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		mydelay(20);
		HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_10);
		printf("TogglePin\\n");
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

自己寫的延時函數如下:

void mydelay(uint8_t time)
{
	uint8_t i;
	uint16_t j;
	
	for(i= 0; i < time; i++)
	{
		for(j = 0; j < 5000; j++)
		{
		}
	}
}

實際測得LED閃爍的周期是在30ms左右

對STM32F4時鐘進行配置后執行代碼、獲取LED閃爍的周期

如下圖所示我們對時鐘進行配置:

由于時鐘頻率168MHz是16MHz 10.5倍,我們將mydelay(20)改為mydelay(210)

實際測得LED閃爍的周期是在30ms左右

比對時鐘配置前后、LED閃爍周期的區別

由上可知LED閃爍周期相同,但相同的延時周期內、配置后的168MHz系統時鐘,運行的延時函數內的空指令數量是默認配置的10.5倍,綜上時鐘配置后使得指令運行的速度是原來的10.5倍

時鐘部分的代碼解析

SystemClock_Config();函數中就是我們在時鐘樹中設置的內容

void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Configure the main internal regulator output voltage
  */
  __HAL_RCC_PWR_CLK_ENABLE();
  __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_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 25;
  RCC_OscInitStruct.PLL.PLLN = 336;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  RCC_OscInitStruct.PLL.PLLQ = 4;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
  /** Initializes the CPU, AHB and APB buses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  {
    Error_Handler();
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23355

    瀏覽量

    663172
  • 時鐘
    +關注

    關注

    11

    文章

    1746

    瀏覽量

    131799
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62968
  • 代碼
    +關注

    關注

    30

    文章

    4825

    瀏覽量

    69043
  • STM32F4
    +關注

    關注

    3

    文章

    194

    瀏覽量

    28192
收藏 人收藏

    評論

    相關推薦

    STM32F4時鐘初始化配置

    00. 目錄文章目錄00. 目錄01. STM32F4時鐘系統概述02. STM32F4時鐘系統圖03. STM32F4
    發表于 07-23 06:53

    STM32F4使用庫函數配置外部中斷的步驟

    轉自“STM32F4外部中斷入口和外部中斷線 - Justice_Gao的日志 單片機論壇并根據自身體會修改目錄簡介使用庫函數配置外部中斷的步驟。1) 使能IO口時鐘,初始化IO口為輸
    發表于 08-13 07:59

    STM32F4的通用定時器配置步驟

    00. 目錄文章目錄00. 目錄01. 通用定時器簡介02. 通用定時器時鐘03. 定時器配置步驟04. 硬件設計05. 程序示例06. 附錄07. 聲明01. 通用定時器簡介STM32F4
    發表于 08-18 07:43

    介紹STM32F4時鐘配置實現

    本文以外部高速時鐘源HSE為例,介紹STM32F4時鐘配置實現。一、概述STM32F4時鐘樹如下
    發表于 08-19 08:01

    如何對STM32F4的RTC時鐘進行配置

    STM32F4的RTC是什么意思?如何對STM32F4的RTC時鐘進行配置呢?
    發表于 11-22 07:24

    STM32F4 LWIP開發手冊

    STM32F4 LWIP開發手冊 STM32F4 教程 STM32F4芯片 pdf
    發表于 11-26 11:09 ?67次下載

    STM32F4

    STM32F4最小系統及外圍電路原理圖。。。
    發表于 05-10 17:06 ?31次下載

    STM32F4系列簡單簡介

    STM32F4系列簡單簡介
    發表于 09-29 15:16 ?21次下載
    <b class='flag-5'>STM32F4</b>系列簡單簡介

    STM32F4 簡介

    介紹STM32F4芯片
    發表于 01-25 15:28 ?23次下載

    STM32F4時鐘系統原理圖解析

    時鐘系統是CPU的脈搏,就像人的心跳一樣。STM32F4時鐘系統比較復雜,不像簡單的51 單片機一個系統時鐘就可以解決一切。
    發表于 08-31 08:44 ?1.8w次閱讀

    STM32STM32F4時鐘系統

    00. 目錄文章目錄00. 目錄01. STM32F4時鐘系統概述02. STM32F4時鐘系統圖03. STM32F4
    發表于 11-25 20:06 ?46次下載
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>STM32F4</b><b class='flag-5'>時鐘</b>系統

    STM32F4 (hal庫)ADC+TIM1+DAC的配置

    STM32F4 (hal庫)ADC+TIM1+DAC的配置
    發表于 11-30 11:36 ?23次下載
    <b class='flag-5'>STM32F4</b> (hal庫)ADC+TIM1+DAC的<b class='flag-5'>配置</b>

    STM32F4 EMWIN開發手冊

    STM32F4 EMWIN開發手冊
    發表于 07-04 14:54 ?10次下載

    AN3988 基于STM32F4時鐘配置工具

    AN3988 基于STM32F4時鐘配置工具
    發表于 11-24 08:32 ?0次下載
    AN3988 基于<b class='flag-5'>STM32F4</b>的<b class='flag-5'>時鐘</b><b class='flag-5'>配置</b>工具

    淺談STM32F4時鐘系統

      本文將介紹STM32F4時鐘系統。
    的頭像 發表于 04-20 11:47 ?2537次閱讀
    淺談<b class='flag-5'>STM32F4</b>的<b class='flag-5'>時鐘</b>系統
    大发888娱乐城怎么样| 大发888娱乐城官网下载| 棋牌室营业执照| 真人百家乐官网是骗局| 反赌百家乐官网的玩法技巧和规则 | 百家乐官网EA平台| LV百家乐官网娱乐城| 联众百家乐的玩法技巧和规则| 皇冠网投| 南京百家乐官网的玩法技巧和规则 | 百家乐官网红桌布| 姚记百家乐的玩法技巧和规则| 德州扑克网站| 百家乐官网赌博工具| 百家乐赌场娱乐| game88city| 大世界百家乐官网的玩法技巧和规则| 百家乐电器维修| 定远县| 百家乐国际娱乐城| 娱乐城送白菜| 扑克王百家乐官网的玩法技巧和规则 | 百家乐官网投注翻倍方法| 百家乐娱乐注册就送| 棋牌赌博网站| 济州岛百家乐官网的玩法技巧和规则| 威尼斯人娱乐城网络博彩| 东方夏威夷网站| 百家乐视频交流| 大发888手机注册送钱| 如何玩百家乐官网赚钱| 三国百家乐娱乐城| 澳门百家乐官网娱乐城信誉如何| 百家乐合法| 锦屏县| 百家乐平台注册送彩金| 奇台县| 缅甸百家乐博彩| 仲巴县| 百家乐视频赌博| 百家乐官网庄家出千内幕|