首页 > 电路 > 电路设计 > STM32F031 内部时钟多少,Stm32内部时钟设置疑问

STM32F031 内部时钟多少,Stm32内部时钟设置疑问

来源:整理 时间:2023-09-17 09:13:13 编辑:亚灵电子网 手机版

本文目录一览

1,Stm32内部时钟设置疑问

stm32在启动的时候就默认使用内部的8MHz RC时钟源,直到初始化程序选择使用外部晶振为止。
内部时钟源是芯片内部自带外部为外部晶振至于多大是可以自己配置的最大值看你具体芯片支持一般外部时钟源会比内部稳定

Stm32内部时钟设置疑问

2,STM32的系统默认时钟是多少

STM32系统的时钟一般有三种HSI,内部高速时钟,默认8MHZ,如果你的程序不做任何处理,系统默认的就是8MHz,还有外部晶振或者外部时钟,普通型最大不超过16MHz,互联型不超过25MHz,还有一个PLL,从HSI或者HSE里吸取时钟,倍频成最大72MHz综述,如果你的程序不做任何处理,就是8MH是

STM32的系统默认时钟是多少

3,STM32辅助时钟

只有使用了AFIO的事件控制寄存器、AFIO的重映射功能以及外部中断(EXTI)控制寄存器才需要开启AFIO的时钟。使用IO的复用功能如果没有以上几种情况就不需要开启AFIO时钟。因为关闭JTAG其实是执行重映射,所以需要开启AFIO。
四个 hse lse hsi lsi hse 外接高频晶振,一般8mlse外接供时钟芯片使用的低频时钟,一般32.768khsi 内部高速rc振荡器时钟,8mlsi 内部40k

STM32辅助时钟

4,stm32系统时钟配置问题解释为什么用某个外

简单理解就是,一般来说,STM32内部有一个8MHz的时钟(HSI时钟),系统上电默认的就是使用该时钟来运行程序,但这个内部的8MHz的精度并不高,也就是说有一定的误差。所以一般我们会在STM32芯片外部接一个8MHz的标准晶振(HSE时钟),配置系统时钟就是使用这个外部的HSE时钟经过内部倍频之后作为系统运行的时钟(sysclock),倍频成多少看你的STM32最高能支持多高的时钟频率,STM32f051C8T6(Cortex-M0)支持到48MHz,STM32F103ZET6(Cortex-M3)支持到72MHz。

5,stm32的时钟大小根据什么选择

APB1最大频率是36Mhz,这个在初始化的时候就已经设置了的,如果用库函数默认就是36Mhz,在main函数运行前就设置了,一般可以不管。如果自己操作寄存器就不一定了。 然后psc的问题:其实里面有两个分频的概念,APB预分频和计数器时钟频率(CK_PSC...
你要知道为什么需要时钟。单片机必须要有时钟才能正常运行,stm32有外部时钟和内部时钟的区别。但无论是外部还是内部时钟,都会经过分频或倍频最后得到外设的时钟,这样外设才能正常运行。而打开时钟就是允许接收分频后的频率。比如外部时钟晶振你是8m,经过倍频后得到72m,然后可分频2、4、6、8……给adc是使用,但是adc最大运行频率为14m,所以分频数至少得设为6。这时你也要像你问的那样,打开adc的时钟。

6,STM32的系统默认时钟是多少

/*!< At this stage the microcontroller clock setting is already configured, this is done through SystemInit() function which is called from startupfile (startup_stm32f10x_xx.s) before to branch to application main.To reconfigure the default setting of SystemInit() function, refer tosystem_stm32f10x.c file*/ 然后你再去看看 SystemInit()这个函数是怎么配置的吧。看完再说。这个是标准库里面的例程主函数里的第一句话。

7,stm32一定要配置系统时钟吗

一般系统嘀嗒定时器用在操作系统上,做多任务调度用。比如ucos操作系统在每个嘀嗒定时器中断时调度一次(当然还有其他情况下也进行调度)。在不用操作系统的时候很少用,毕竟stm32有更强大的外设定时器。
简单理解就是,一般来说,stm32内部有一个8mhz的时钟(hsi时钟),系统上电默认的就是使用该时钟来运行程序,但这个内部的8mhz的精度并不高,也就是说有一定的误差。所以一般我们会在stm32芯片外部接一个8mhz的标准晶振(hse时钟),配置系统时钟就是使用这个外部的hse时钟经过内部倍频之后作为系统运行的时钟(sysclock),倍频成多少看你的stm32最高能支持多高的时钟频率,stm32f051c8t6(cortex-m0)支持到48mhz,stm32f103zet6(cortex-m3)支持到72mhz

8,STM32里系统时钟

这得看你程序 RCC那块的配置,//PLL设置 SYSCLK/1 * 9 = 8*1*9 = 72MHzRCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);//启动PLLRCC_PLLCmd(ENABLE);标配是外接8Mhz,内部9倍频,平常的学习,工作都满足了!
不可能出现这种情况吧?STM32F10X系列的,外部晶振最大只能到16MPLL的倍频值只能是整数,结果是 系统时钟 = 晶振 * 倍频值所以倍频值 = 系统时钟 / 晶振 只能是整数,不能带小数点。所以,即使STM32F10X允许你用25M,你也得不到72M,最大只能到50M
rcc_apb2periphclockcmd(rcc_apb2periph_gpiog, enable); 只是开了gpiog时钟,配置gpiog管脚前必须开此systeminit();系统初始化,开芯片内部时钟等等,完全不是一个概念

9,stm32f412总线时钟100m怎么计算

unsigned char SysClockSet(unsigned char OSC, unsigned char Clock)  用于设置MCU的时钟,两个参数,前一个(OSC)用于选择内部晶振还是外部晶振,这能是HSE或者HSI,这个在H文件中有定义;  第二个参数 Clock,范围0~25,对应不同的主频,具体值看程序里面switch语句部分就明白了;  然后要说一点,HSE_VALUE 和 HSI_VALUE是外部和内部晶振的频率,这个值在 stm32f4xx.h 里面有定义的,如果是你自己做的板子,那么就需要根据你所采用的晶振数值到stm32f4xx.h里面把 HSE_VALUE 修改一下即可;  SysClockGet(void)函数用来获取当前MCU主频,返回值的单位是Hz;  再PS:用此程序,可以动态的调整MCU主频,就是在MCU运行中,根据实际工作量的多少升降主频,我试过,蛮好使的,而且可以超频,216MHz没有问题,240MHz要看芯片体质,有些可以长时间运行,260MHz,更要看体质了,反正我的芯片是真呢过跑个几分钟,然后就死机了。
虽然我很聪明,但这么说真的难到我了
虽然我很聪明,但这么说真的难到我了

10,stm32f407 初始时钟是多少怎么改

STM32启动时默认为内部RC震荡 所以在使用的时候,首先要对时钟进行初始化 等待外部晶振稳定后 然后才对外部晶振进行分频或者倍频 最后才是对APB总线时钟及模块时钟进行配置。
楼上的用起来也有点麻烦,用我这个吧,C文件:#include "stm32f4xx.h"#include "sysclk.h"unsigned char SysClockSet(unsigned char OSC, unsigned char Clock) unsigned int temp = 0, PLLM = 0, PLLN = 0, PLLP = 0, PLLQ = 0; unsigned int OSC_Sta; unsigned int OSC_VALUE = HSI_VALUE; unsigned int OSC_RDY = RCC_CR_HSIRDY; unsigned int OSC_ON = RCC_CR_HSION; unsigned char OSC_ERROR = HSI_error; unsigned int OSC_OK = HSI_OK; unsigned int OSC_SW = RCC_CFGR_SW_HSI; unsigned int OSC_SWS = RCC_CFGR_SWS_HSI; unsigned int OSC_SRC = RCC_PLLCFGR_PLLSRC_HSI; if(OSC == HSE) OSC_VALUE = HSE_VALUE; OSC_RDY = RCC_CR_HSERDY; OSC_ON = RCC_CR_HSEON; OSC_ERROR = HSE_error; OSC_OK = HSE_OK; OSC_SW = RCC_CFGR_SW_HSE; OSC_SWS = RCC_CFGR_SWS_HSE; OSC_SRC = RCC_PLLCFGR_PLLSRC_HSE; } else if(OSC != HSI) return(Parameter_error); switch (Clock) case 0 : PLLM = (OSC_VALUE/1000000); PLLN = 96; PLLP = 8; PLLQ = 2; break; //12MHz case 1 : PLLM = (OSC_VALUE/1000000); PLLN = 96; PLLP = 6; PLLQ = 2; break; //16MHz case 2 : PLLM = (OSC_VALUE/2000000); PLLN = 72; PLLP = 8; PLLQ = 3; break; //18MHz case 3 : PLLM = (OSC_VALUE/2000000); PLLN = 96; PLLP = 8; PLLQ = 4; break; //24MHz case 4 : PLLM = (OSC_VALUE/2000000); PLLN = 120; PLLP = 8; PLLQ = 5; break; //30MHz case 5 : PLLM = (OSC_VALUE/2000000); PLLN = 96; PLLP = 6; PLLQ = 4; break; //32MHz case 6 : PLLM = (OSC_VALUE/2000000); PLLN = 144; PLLP = 8; PLLQ = 6; break; //36MHz case 7 : PLLM = (OSC_VALUE/2000000); PLLN = 120; PLLP = 6; PLLQ = 5; break; //40MHz case 8 : PLLM = (OSC_VALUE/2000000); PLLN = 168; PLLP = 8; PLLQ = 7; break; //42MHz case 9 : PLLM = (OSC_VALUE/2000000); PLLN = 192; PLLP = 8; PLLQ = 8; break; //48MHz case 10: PLLM = (OSC_VALUE/2000000); PLLN = 216; PLLP = 8; PLLQ = 9; break; //54MHz case 11: PLLM = (OSC_VALUE/2000000); PLLN = 168; PLLP = 6; PLLQ = 7; break; //56MHz case 12: PLLM = (OSC_VALUE/2000000); PLLN = 120; PLLP = 4; PLLQ = 5; break; //60MHz case 13: PLLM = (OSC_VALUE/2000000); PLLN = 192; PLLP = 6; PLLQ = 8; break; //64MHz case 14: PLLM = (OSC_VALUE/2000000); PLLN = 144; PLLP = 4; PLLQ = 6; break; //72MHz case 15: PLLM = (OSC_VALUE/2000000); PLLN = 240; PLLP = 6; PLLQ = 10; break; //80MHz case 16: PLLM = (OSC_VALUE/2000000); PLLN = 168; PLLP = 4; PLLQ = 7; break; //84MHz case 17: PLLM = (OSC_VALUE/2000000); PLLN = 192; PLLP = 4; PLLQ = 8; break; //96MHz case 18: PLLM = (OSC_VALUE/2000000); PLLN = 216; PLLP = 4; PLLQ = 9; break; //108MHz case 19: PLLM = (OSC_VALUE/2000000); PLLN = 120; PLLP = 2; PLLQ = 5; break; //120MHz case 20: PLLM = (OSC_VALUE/2000000); PLLN = 144; PLLP = 2; PLLQ = 6; break; //144MHz case 21: PLLM = (OSC_VALUE/2000000); PLLN = 168; PLLP = 2; PLLQ = 7; break; //168MHz case 22: PLLM = (OSC_VALUE/2000000); PLLN = 192; PLLP = 2; PLLQ = 8; break; //192MHz case 23: PLLM = (OSC_VALUE/2000000); PLLN = 216; PLLP = 2; PLLQ = 9; break; //216MHz case 24: PLLM = (OSC_VALUE/2000000); PLLN = 240; PLLP = 2; PLLQ = 10; break; //240MHz// case 25: PLLM = (OSC_VALUE/2000000); PLLN = 260; PLLP = 2; PLLQ = 11; break; //260MHz default: PLLM = (OSC_VALUE/2000000); PLLN = 240; PLLP = 2; PLLQ = 10; break; //240MHz } //如果时钟没有稳定,则重新启动时钟并等待稳定 OSC_Sta = RCC->CR & OSC_RDY; if(OSC_Sta == 0) RCC->CR |= OSC_ON; do OSC_Sta = RCC->CR & OSC_RDY; temp++; }while((OSC_Sta == 0) && (temp < 0x0600)); if(OSC_Sta == 0)return(OSC_ERROR); //超时错误 } //切换系统时钟为对应晶振并等待稳定 RCC->CFGR &= (~(RCC_CFGR_SW)); RCC->CFGR |= OSC_SW; while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != OSC_SWS); //配置PLL RCC->CR &= (~(RCC_CR_PLLON)); //先关闭PLL RCC->CR &= (~(RCC_CR_PLLI2SON)); //关闭PLLI2S RCC->PLLCFGR = PLLM | (PLLN << 6) | (((PLLP >> 1) -1) << 16) | (PLLQ << 24) | (OSC_SRC); //启用PLL,并等待稳定 RCC->CR |= RCC_CR_PLLON; while((RCC->CR & RCC_CR_PLLRDY) == 0); //启用PLLI2S,并等待稳定 RCC->CR |= RCC_CR_PLLI2SON; while((RCC->CR & RCC_CR_PLLI2SRDY) == 0); //切换系统时钟为PLL并等待稳定 RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); RCC->CFGR |= RCC_CFGR_SW_PLL; while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL); return(OSC_OK);}uint32_t SysClockGet(void) uint32_t PLLM = 0, PLLN = 0, PLLP = 0, PLLSRC = 0; if ((RCC->CFGR & RCC_CFGR_SWS ) == RCC_CFGR_SWS_HSE) return HSE_VALUE; else if ((RCC->CFGR & RCC_CFGR_SWS ) == RCC_CFGR_SWS_HSI) return HSI_VALUE; else PLLM = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; PLLN = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN)>>6); PLLP = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP)>>16)+1)<<1); PLLSRC = RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC; if(PLLSRC == 0) return (((HSI_VALUE * PLLN) / PLLM )/ PLLP); else return (((HSE_VALUE * PLLN) / PLLM )/ PLLP); }}
文章TAG:STM32F031内部内部时钟时钟

最近更新

  • 电压 电流围成的面积,电流与电压的比值是多少?电压 电流围成的面积,电流与电压的比值是多少?

    电流、电压和功率之间的关系是功率-电流=电压。电压越高,电流越小,所用导线的横截面积越小,相反,电压越小,电流越大,所用导线的横截面积越大,电流是指电荷的定向运动,工作电流,以保证感性电器的.....

    电路设计 日期:2024-04-11

  • 起辉器多少钱,请问空调启动器多少钱一个起辉器多少钱,请问空调启动器多少钱一个

    请问空调启动器多少钱一个付费内容限时免费查看回答很多空调都有空调启动器,一般空调启动机的价格,是在50元到300元左右,具体的价格要看空调启动器的材质来决定,它的材质不一样,价格也是不.....

    电路设计 日期:2024-04-11

  • 飞腾芯片的笔记本,国产电脑处理器有哪些品牌?飞腾芯片的笔记本,国产电脑处理器有哪些品牌?

    在车身尾部,飞腾龙E2000Q芯片和基于该芯片的车内智能终端的图案令人印象深刻,成为了这辆324路公交车最亮眼的核心亮点。今年由腾飞跨境联合品牌广州交信投资有限公司推出的“龙”主题公.....

    电路设计 日期:2024-04-11

  • 电压环路响应速度,电源环路响应电压环路响应速度,电源环路响应

    电压调节器的控制回路的响应速度越快。限制响应速度,可以先放慢环路速度和增益,待电路稳定后再观察伯德图调整环路以满足动态响应的要求,闭环的响应越慢,稳压电路的时间常数:稳压电路中的.....

    电路设计 日期:2024-04-10

  • 红外遥控音乐插座电路,智能红外遥控插座怎么设置?红外遥控音乐插座电路,智能红外遥控插座怎么设置?

    如果只是遥控音响的电源开关,在淘宝上买一套“带继电器的红外遥控套装”就行了,十几块钱。红外遥控系统通用红外遥控系统由发射和接收两部分组成,由编码/解码ASIC芯片进行控制操作,如图所.....

    电路设计 日期:2024-04-10

  • 单差分电路图,差分通道单端输出单差分电路图,差分通道单端输出

    输入级采用双差分通道。该机器将OCL的差分输入和电压放大部分与其后面的驱动输出分开,并将其与前端电路一起设置在电路板上,这是该功率放大器的特点之一,这种布置可以有效地降低大电流电.....

    电路设计 日期:2024-04-10

  • 电路板油脂用什么,油性电路板电路板油脂用什么,油性电路板

    什么是PCB润滑脂?因为电路板是一个敏感部件,清洗时必须使用水,一旦电路板变湿,就会出现问题。应拆下控制电路板,在受污染的印制板上喷洒清洗剂,然后用干净的牙刷刷去污垢和油渍,PCB润滑脂是指.....

    电路设计 日期:2024-04-10

  • 射频mos驱动电路,MOS开关电路怎么接?射频mos驱动电路,MOS开关电路怎么接?

    Mosfet不需要驱动电路。电压和电流太小,芯片无法驱动,例如,dsp的输出只有以下原因:RC时间常数:在驱动电路中,驱动电阻和驱动电容之间形成RC并联网络,pwm驱动mos晶体管的电路提供以下特性:用.....

    电路设计 日期:2024-04-10