精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F4時鐘配置的操作步驟

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

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

一、使用默認(rèn)時鐘配置去執(zhí)行代碼、獲取LED閃爍的周期

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

最后我們系統(tǒng)時鐘、以及外設(shè)獲得的時鐘頻率為16MHz

主函數(shù)中的代碼如下:

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 */
}

自己寫的延時函數(shù)如下:

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時鐘進(jìn)行配置后執(zhí)行代碼、獲取LED閃爍的周期

如下圖所示我們對時鐘進(jìn)行配置:

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

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

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

由上可知LED閃爍周期相同,但相同的延時周期內(nèi)、配置后的168MHz系統(tǒng)時鐘,運(yùn)行的延時函數(shù)內(nèi)的空指令數(shù)量是默認(rèn)配置的10.5倍,綜上時鐘配置后使得指令運(yùn)行的速度是原來的10.5倍

時鐘部分的代碼解析

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

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();
  }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    23134

    瀏覽量

    658418
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1720

    瀏覽量

    131362
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4304

    瀏覽量

    62429
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4747

    瀏覽量

    68348
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    194

    瀏覽量

    27993
收藏 人收藏

    評論

    相關(guān)推薦

    STM32F4時鐘初始化配置

    00. 目錄文章目錄00. 目錄01. STM32F4時鐘系統(tǒng)概述02. STM32F4時鐘系統(tǒng)圖03. STM32F4
    發(fā)表于 07-23 06:53

    STM32F4使用庫函數(shù)配置外部中斷的步驟

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

    STM32F4的通用定時器配置步驟

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

    介紹STM32F4時鐘配置實現(xiàn)

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

    如何對STM32F4的RTC時鐘進(jìn)行配置

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

    STM32F4 LWIP開發(fā)手冊

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

    STM32F4

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

    STM32F4 EMWIN開發(fā)手冊V3.0

    STM32F4 EMWIN開發(fā)手冊V3.0 STM32F4 EMWIN開發(fā)手冊V3.0
    發(fā)表于 07-25 17:45 ?40次下載

    STM32F4 簡介

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

    STM32F4時鐘系統(tǒng)原理圖解析

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

    STM32STM32F4時鐘系統(tǒng)

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

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

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

    STM32F4 FreeRTOS開發(fā)手冊

    STM32F4 FreeRTOS開發(fā)手冊
    發(fā)表于 07-04 14:53 ?74次下載

    AN3988 基于STM32F4時鐘配置工具

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

    淺談STM32F4時鐘系統(tǒng)

      本文將介紹STM32F4時鐘系統(tǒng)。
    的頭像 發(fā)表于 04-20 11:47 ?2371次閱讀
    淺談<b class='flag-5'>STM32F4</b>的<b class='flag-5'>時鐘</b>系統(tǒng)