欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2128|回復: 2
收起左側

stm32F411RET6用HSI最高只有66M?

[復制鏈接]
ID:272602 發表于 2020-8-8 01:26 | 顯示全部樓層 |閱讀模式
搞了半天了,用標準庫最高配置66M,hal庫都配最高只能配置到64M,難道和STM32F103一樣?
標準庫配置如下:
static void SetSysClock(void)                               
{
                               
     __IO uint32_t HSIStartUpStatus = 0;
                // 把RCC外設初始化成復位狀態
    RCC_DeInit();
                //使能HSI, HSI=16M                               
     RCC_HSICmd(ENABLE);
                        // 等待 HSI 就緒
     HSIStartUpStatus = RCC->CR & RCC_CR_HSIRDY;
                        // 只有 HSI就緒之后則繼續往下執行
                        if (HSIStartUpStatus == RCC_CR_HSIRDY) {

                                // 如果要超頻就得在這里下手啦
                        // 設置PLL來源時鐘,設置VCO分頻因子m,設置VCO倍頻因子n,
                                //  設置系統時鐘分頻因子p,設置OTG FS,SDIO,RNG分頻因子q
                                RCC_PLLConfig(RCC_PLLSource_HSI, 16, 264, 4, 7);
                                // 使能PLL
                                RCC_PLLCmd(ENABLE);
                                // 等待 PLL穩定
                                while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {}
                                /*-----------------------------------------------------*/
                                //開啟 OVER-RIDE模式,以能達到更高頻率
//                                 PWR->CR |=PWR_CR_VOS;
//                                while ((PWR->CSR & PWR_CSR_ODRDY) == 0) { }
//                                PWR->CR |= PWR_CR_ODSWEN;
//                                while ((PWR->CSR & PWR_CSR_ODSWRDY) == 0) {}
                                // 配置FLASH預取指,指令緩存,數據緩存和等待狀態
                                FLASH->ACR = FLASH_ACR_PRFTEN
                               
                      | FLASH_ACR_ICEN
                               
                      |FLASH_ACR_DCEN
                               
                      |FLASH_ACR_LATENCY_3WS;
                                /*-----------------------------------------------------*/                               
         RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
                                // 讀取時鐘切換狀態位,確保PLLCLK被選為系統時鐘
                                while (RCC_GetSYSCLKSource() != 0x08) {}
                                                        // 調壓器電壓輸出級別配置為1,以便在器件為最大頻率
                        // 工作時使性能和功耗實現平衡
                         RCC->APB1ENR |= RCC_APB1ENR_PWREN;
                                PWR->CR |= PWR_CR_VOS;
                                // HCLK = SYSCLK / 1
                                RCC_HCLKConfig(RCC_SYSCLK_Div1);
                                // PCLK2 = HCLK / 2
                                RCC_PCLK2Config(RCC_HCLK_Div2);
                                // PCLK1 = HCLK / 4
                                RCC_PCLK1Config(RCC_HCLK_Div4);
                               
     } else {
                                // HSI啟動出錯處理
                        while (1) {}
                               
     }
                               
}

hal庫配置如下:
void SystemClock_Config(void)
{
  RCC_ClkInitTypeDef RCC_ClkInitStruct;
  RCC_OscInitTypeDef RCC_OscInitStruct;

  /* Enable Power Control clock */
  __HAL_RCC_PWR_CLK_ENABLE();

  /* The voltage scaling allows optimizing the power consumption when the device is
     clocked below the maximum system frequency, to update the voltage scaling value
     regarding system frequency refer to product datasheet.  */
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);

  /* Enable HSI Oscillator and activate PLL with HSI as source */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = 0x10;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  RCC_OscInitStruct.PLL.PLLM = 16;
  RCC_OscInitStruct.PLL.PLLN = 384;
  RCC_OscInitStruct.PLL.PLLP = 6;
  RCC_OscInitStruct.PLL.PLLQ = 7;
  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
      while(1)
  {
  }
  }

  /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
     clocks dividers */
  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;  
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  
  if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
  {
      while(1)
  {
  }
  }
}

回復

使用道具 舉報

ID:804115 發表于 2020-8-8 09:10 來自觸屏版 | 顯示全部樓層
用stm32cubemx圖形化界面配置一下試試,分分鐘出結果,記得芯片要選對。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:272602 發表于 2020-8-8 15:23 | 顯示全部樓層
自己來結貼!問題已解決,13腳應接一個AVDD和VDD之間接一個100uH電感,30腳接一個4.7uF電容。本以為和STM32F103 pintopin兼容。結果搞了這么長時間。懶人浪費時間!早點看手冊就好了!

評分

參與人數 1黑幣 +5 收起 理由
1692483014 + 5 淡定

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表