不用晶振,STM32內部HSI時鐘的倍頻使用

2021-09-08 05:38:26 字數 744 閱讀 3037

1、關於如何使用stm32內部晶振,並配置成48m主頻----

博主最近用stm32f1系列微控制器做乙個觸控螢幕usb滑鼠,考慮不用外部晶振而使用stm32內部8mhz hsi rc作為時鐘源。由於usb協議規定了48mhz 的usb時鐘,故必須對his作pll倍頻處理後得到pllclk作為stsclk時鐘。時鐘關係見如下stm32f1時鐘樹:

模擬正點原子stm32f1暫存器版本使用外部晶振的時鐘初始化函式,改動得到使用hsi作為時鐘源,sysclk為48mhz的初始化**:

void stm32_clock_init(u8 pll)

}其中myrcc_deinit()**如下:

void myrcc_deinit(void)

my_nvic_setvectortable()**如下:

void my_nvic_setvectortable(u32 nvic_vecttab, u32 offset)     

(1)使用時在main()函式中應寫成:stm32_clock_init(12),即8/2*12=48mhz.

(2)為使delay_ms()等函式時鐘準確,應在system_stm32f10x.c中將

(3)#define sysclk_freq_48mhz  48000000解除遮蔽

(4)同時要注意在usb時鐘初始化函式中不再對pll時鐘分頻。即時鐘配置暫存器(rcc_cfgr)第22位應設定為1

(5)最後,內部時鐘要想正確使用,需要在啟動.s檔案中遮蔽sysinit

STM32使用外部16MHZ晶振總結

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

修改STM32庫函式中的晶振值

stm32f407的庫檔案中預設晶振值為25mhz,若外接晶振8mhz,則需修改以下幾個地方 1 修改hse value的值 將 define hse value uint32 t 25000000 value of the external oscillator in hz 修改為 define ...

stm32f4晶振管理

最近要使用stm32f4晶元做開發,根據自己的程式設計習慣,做一些學習記錄,以便於自己以後查閱。我們在設計電路的時候,一般都會設計mcu使用外部晶振,筆者工作中曾經遇到外部晶振故障晶元無法正常啟動問題 無內部晶振老的mcu 使用示波器發現的,在更換了外部晶振以後,問題就解決了。由此筆者想到,stm3...