1. 程式人生 > >stm32變更外部晶振時如何配置時鐘、以及HSI的使用

stm32變更外部晶振時如何配置時鐘、以及HSI的使用

void RCC_Configuration(void) {         /* RCC system reset(for debug purpose) */         RCC_DeInit();         RCC_HSICmd(ENABLE);        //開啟內部高速時鐘         //等待HSI準備好         while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);         FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);        //開啟FLASH預取指功能         //FLASH時序控制         //推薦值:SYSCLK = 0~24MHz   Latency=0         //       SYSCLK = 24~48MHz  Latency=1         //       SYSCLK = 48~72MHz  Latency=2         FLASH_SetLatency(FLASH_Latency_2);         RCC_HCLKConfig(RCC_SYSCLK_Div1);        //設定HCLK(AHB時鐘)=SYSCLK         RCC_PCLK2Config(RCC_HCLK_Div1);                //PCLK2(APB2) = HCLK         RCC_PCLK1Config(RCC_HCLK_Div1);                //PCLK1(APB1) = HCLK         //PLL設定 SYSCLK/2 * 12 = 4*12 = 48MHz         RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);         //啟動PLL         RCC_PLLCmd(ENABLE);//如果PLL被用於系統時鐘,不能被DISABLE         //等待PLL穩定         while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){;}         //設定系統時鐘SYSCLK = PLL輸出         RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);         //等待PLL成功用作於系統時鐘的時鐘源,並等待穩定         // 0x00:HSI作為系統時鐘         // 0x04:HSE作為系統時鐘         // 0x08:PLL作為系統時鐘         while(RCC_GetSYSCLKSource() != 0x08); }

相關推薦

stm32變更外部如何配置時鐘以及HSI的使用

void RCC_Configuration(void) {         /* RCC system reset(for debug purpose) */         RCC_DeInit();         RCC_HSICmd(ENABLE);        //開啟內部高速時鐘    

STM32不同外部工程的配置問題

遇到的問題:同樣的串列埠配置程式碼在一種407開發板上能正常輸出,但是換到另一種407開發板上後就出現亂碼,檢查串列埠輸出波形後發現,電平轉換晶片沒有問題,但是波特率卻有問題。問題原因:   經過故障排查發現出現上述問題的原因是兩種STM32F407使用的外部晶振的頻率不一樣

STM32外部時鐘配置

void SystemClock_Config(void) { RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); //INPUT HSE = 24M Err

基於WINAVR + avr studio 4 使用外部及延可能遇到的問題( By-炬本)

第一步,使用外部晶振 1.    連線isp下載線 2.    開啟avr fighter a” 如下介面,在熔絲位那框架,點選“讀取”     (注:上圖是預設的熔絲位) b.單擊滑鼠,把熔絲位改為下圖(僅是JTAGEN 和CKOPT 為0),單擊寫入: 這樣就能使用

STM32外部32Mhz下的時鐘配置方法

1. 硬體平臺 本例程使用的是 STM32F302RDT6 晶片,其時鐘配置方法在其它ST微控制器中也類似。 2. 實驗目的 使用外部 32Mhz 晶振配置系統時鐘為 72Mhz。 3. 配置原理 根據STM32F302RD晶片

STM32 F1配置外部

當外部晶振配置錯誤時,會導致串列埠亂碼,這是描述從 預設的8M晶振改成12M  改晶振方法如下 1. 修改外部高速晶振值  stm32f10x.h  修改前  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of

STM32外部不起

晶片:STM32F429 開發平臺:Keil 問題: STM32外部晶振不起振,選擇了內部16MHZ,從而導致延時函式、波特率、定時器等等有問題。 有源晶振和無源晶振的區別 有源晶振一般4個腳,一個電源,一個接地,一個訊號輸出端,一個NC(空腳)。有個點標記的為1腳,按逆

STM32使用非8M如何修改程式碼

目前能找到的大部分程式碼都是預設8M外部晶振的,若使用的晶振不是8M則需要作一些修改。例如這次我使用的外部晶振是12M的,作如下修改。     1.首先需要修改"Option for target 'xxx'"中的Target -> Xtal(Mhz)處的值(改為

STM32使用內部外部

在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法如果使用內部RC振盪器而不使用外部晶振,請按照下面方法處理:1)對於100腳或144腳的產品,OSC_IN應接地,OSC_OUT應懸空。2)對於少於100腳的產品,有2種接法:2.1)OSC_IN和OSC_

STM32系列修改外部以及程式碼的修改(f103f105為例)

剛剛接觸STM32的時候,用的都是8M晶振。比如你想更換到為外部晶振為12M,但是主頻仍想用72M的。該如何設定?或者想倍頻到更高的主頻該怎麼修改? 例子就直接直接拿<正點原子>的例子吧! 屬性 原來 現在 外部晶

STM32F4板子更改後時鐘配置

最近用一塊STM32F407的板子做專案,使用正點原子的例程做測試,發現串列埠列印資料總是亂碼,通訊波特率都是一致的,後來發現板子的晶振是12M的,而正點原子板子的晶振是8M的,於是就需要去更改系統配置。 一、更改HSE_VALUE HSE_VALUE在stm3

關於Nucleo-STM32板沒有時鐘頻率的來源

        剛入手的一塊Nucleo-STM32F303RE開發板,高興之餘發現板上竟然沒有晶振,不過有出廠程式,燈能閃,難道用了內部晶振?帶著疑問百度了一下,有人說是和板上st-link共用8M晶振,那麼到底是不這樣呢? 一、結論:        下載這塊板的使用者手冊

IAR下stm32使用12M外部

系統預設的是使用8M外部晶振,需修改三個地方:  第一步,開啟stm32f10x.h,將 define HSE_VALUE ((uint32_t)8000000) /!< Value of the External oscillator in Hz / 修改為:

當手頭上沒有示波器,如何通過程式碼測試stm32外部是否工作

1.首先檢視stm32手冊,可以知道有一個時鐘控制暫存器(RCC_CR),在該暫存器中,第16位和第0位和25位和24位分別為: HSEON:外部高速時鐘使能 (External high-speed clock enable) HSION:內部高速時鐘使能

stm32f429ig上的ucLinux修改外部頻率

將stm32f429i-discovery開發板的 emcraft uclinux 例程移植到秉火stm32f429的開發板上,由於stm32f429i-discovery上使用的是8MHZ外部晶振,而秉火stm32f429的開發板使用的是25MHZ的晶振。 u-boot部分 修改u

【BLE】CC2541之32.768kHZ外部

本篇博文最後修改時間:2017年01月06日,11:06。 一、簡介 本文介紹外部的32.768K晶振對於CC2541的作用。 二、實驗平臺 協議棧版本:BLE-CC254x-1.4.0 編譯軟體:IAR 8.20.2 硬體平臺:Smart RF(主晶片CC2

stm32f105外部由8MHz調整到12MHz庫的修改

<pre name="code" class="cpp"> /* Configure PLLs ------------------------------------------------------*/ /* PLL2 configuration: PLL2CLK = (HS

stm32 外接問題

由於STM32F10x庫官方採用的是預設的外接8MHz晶振,因此造成很多使用者也採用了8MHz的晶振,但是,8MHz的晶振不是必須的,其他頻點的晶振也是可行的,只需要在庫中做相應的修改就行。     在論壇上看到很多使用者反映,使用外接12MHz的晶振,會造成很多的問題,如USART的波特率不正確,Syst

STM32滴答定時器與UCOS時鐘系統,以及心跳和延函式的實現.

   Systick就是一個定時器而已,只是它放在了NVIC中,主要的目的是為了給作業系統提供一個硬體上的中斷(號稱滴答中斷)。滴答中斷?這裡來簡單地解釋一下。作業系統進行運轉的時候,也會有“心跳”。它會根據“心跳”的節拍來工作,把整個時間段分成很多小小的時間片,每個任務每次

STM32使用外部16MHZ修改程式點

做小封裝產品設計的朋友或許知道3225-4PIN的晶振,為何8MHZ晶振批量價格要到2元一片,而16MHZ晶振只需要0.4元甚至更少。究其原因是因為3225封裝的晶振目前全球最低頻率一般為8MHZ,而國內8MHZ達不到精度指標,所以市場上的8MHZ晶振一般為進口晶振,因此成