ZKX's LAB

stm32CubeMX之如何配置内振作为系统时钟 stm32时钟配置详解

2020-10-06知识26

STM32时钟基础分析

stm32CubeMX之如何配置内振作为系统时钟 stm32时钟配置详解

STM32时钟配置问题 0X00000400用二进制表示:0100 0000 0000(低12位[11:0],其余高20位全为0),CFGR的10:8位是控制APB1分频的,那么0X00000400对应的10:8位为100,也就是对系统时钟2分频,系统时钟最高72M,除2以后当然不超过36了;[2:0]是指从0位到第二位,即有三位,位0,位1,位2。[3:0][1:0]类似。51学的时候是用C还是用汇编?多看看汇编,多了解怎么对硬件进行操作的,那么从8位单片机到32位单片机不难。

stm32CubeMX之如何配置内振作为系统时钟 stm32时钟配置详解

stm32的内部时钟在哪儿配置 首先在主程序中注释掉SystemInit();然后使用下面的函数做为系统时钟的初始化函数void RCC_Configuration(void){RCC_DeInit();将外设 RCC寄存器重设为缺省值RCC_HSICmd(ENABLE);使能HSIwhile(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)=RESET);等待HSI使能成功FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);FLASH_SetLatency(FLASH_Latency_2);RCC_HCLKConfig(RCC_SYSCLK_Div1);RCC_PCLK1Config(RCC_HCLK_Div2);RCC_PCLK2Config(RCC_HCLK_Div1);PLL 时钟源及倍频系数RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_2);使能或者失能 PLL,这个参数可以取:ENABLE或者DISABLERCC_PLLCmd(ENABLE);如果PLL被用于系统时钟,那么它不能被失能等待指定的 RCC 标志位设置成功 等待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);需与被选择的系统时钟对应起来,RCC_SYSCLKSource_PLL。

stm32CubeMX之如何配置内振作为系统时钟 stm32时钟配置详解

【求助】STM32大神,关于时钟配置函数导致程序跑飞问题。 给你看看原子的外部时钟配置系统时钟初始化函数pll:选择的倍频数,从2开始,最大值为16CHECK OK091209void Stm32_Clock_Init(u8 PLL){unsigned char temp=0;MYRCC_DeInit();复位并配置向量表RCC->;CR|=0x00010000;外部高速时钟使能HSEONwhile。(RCC->;CR>;>;17));等待外部时钟就绪RCC->;CFGR=0X00000400;APB1=DIV2;APB2=DIV1;AHB=DIV1;PLL-=2;抵消2个单位RCC->;CFGR|=PLL;设置PLL值 2~16RCC->;CFGR|=1;PLLSRC ONFLASH->;ACR|=0x32;FLASH 2个延时周期RCC->;CR|=0x01000000;PLLONwhile。(RCC->;CR>;>;25));等待PLL锁定RCC->;CFGR|=0x00000002;PLL作为系统时钟while(temp。0x02)/等待PLL作为系统时钟设置成功{temp=RCC->;CFGR>;>;2;temp&0x03;}}

STM32的时钟到底如何配置? 时钟配置的话,你可以先想好自己的程序里面需要用到哪些外设,然后根据时钟树打开相应的外设时钟就行了。我这里给你一个一般的时钟配置的子程序吧:void rcc_configuration(void){ErrorStatus HSEStartUpStatus;定义变量HSEStartUpStatusRCC_DeInit();RCC重新配置RCC_HSEConfig(RCC_HSE_ON);打开HSE时钟HSEStartUpStatus=RCC_WaitForHSEStartUp();读入RCC状态if(HSEStartUpStatus=SUCCESS)/HSE时钟稳定{FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);Flash预取缓冲使能;FLASH_SetLatency(FLASH_Latency_2);72MHz运行时,Flash需要等到2个周期;RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);使用外部时钟的9倍作为PLL时钟;RCC_PLLCmd(ENABLE);使能PLL;while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)=RESET)/等待PLL时钟稳定;{}RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);把系统时钟切换到PLL时钟;while(RCC_GetSYSCLKSource()。0x08)/判断PLL是否是系统时钟{}}下面这个是总线上的时钟配置:RCC_HCLKConfig(RCC_SYSCLK_Div1);主时钟为72MHzRCC_PCLK2Config(RCC_HCLK_Div1);APB2时钟为72MHzRCC_PCLK1Config(RCC_HCLK_Div2);APB1。

stm32CubeMX之如何配置内振作为系统时钟,tm32CueMX之如何配置内振作为系统时钟呢?下面小迹就为大家介绍一下。

#stm32#pll#倍频#单片机

随机阅读

qrcode
访问手机版