您现在的位置是:主页 > 电压 > 正文

stm32为什么要有外部时钟和内部时钟?

电压 2025-02-06 20:21

一、stm32为什么要有外部时钟和内部时钟?

简单理解就是,一般来说,STM32内部有一个8MHz的时钟(HSI时钟),系统上电默认的就是使用该时钟来运行程序,但这个内部的8MHz的精度并不高,也就是说有一定的误差。

所以一般我们会在STM32芯片外部接一个8MHz的标准晶振(HSE时钟),配置系统时钟就是使用这个外部的HSE时钟经过内部倍频之后作为系统运行的时钟(sysclock),倍频成多少看你的STM32最高能支持多高的时钟频率,STM32f051C8T6(Cortex-M0)支持到48MHz,STM32F103ZET6(Cortex-M3)支持到72MHz

二、stm32最高时钟?

stm32F1系类最大72Mhz 你可以超频用 但是不一定能稳定可靠工作 比方说你用8M晶振 配置按照72M主频算,直接换成10M晶振 主频自然就是 90M Flash Leancy 设到最大应该可以比72Mhz 高一些, 另外 APB1分频要小于等于36MHz,要用usb的话必须是48或72

三、stm32有几个时钟?

STM32有五个时钟源:HSE,HSI,LSE,LSI,PLL。HSE来自于外部的晶振(4-16MHz),精度较高;HSI为STM32内部RC振荡器产生(8MHz),精度较差;LSE为外部固定晶振产生(32.768KHz),一般用于RTC;LSI为内部RC振荡器(40KHz)产生,被用于RTC时钟或者独立看门狗时钟IWDGCLK;PLL为锁相环倍增输出时钟源,其时钟输入源可以为HSI/2,HSE,HSE/2,其倍频可以为2-16,但是其最大频率不能超过72MHz。希望我的回答对你有所帮助

四、stm32外部中断实验目的?

实验目的

1)了解STM32外部中断相关知识;

2)使用STM32外部中断,实现两个LED灯亮灭;

STM32外部中断简介

1)STM32F103系列有60个可屏蔽中断;支持19个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。

STM32F103 的19 个外部中断为:

线 0~15:对应外部 IO 口的输入中断。

线 16:连接到 PVD 输出。

线 17:连接到 RTC 闹钟事件。

线 18:连接到 USB 唤醒事件。

五、stm32怎么从外部flash?

给个思路:

1、读取STM32的UID,发送给PC或服务器请求进行授权操作。

2、PC或服务器根据UID和加密算法计算出相应的密钥,然后回传给STM32的程序进行授权。

3、STM32收到密钥后,写入Flash或EEPROM存储下来。

4、STM32每次启动运行时,从Flash或EEPROM读取出密钥,然后根据相应的算法对UID进行加密运算,将运算结果和密钥进行对比;或对密钥进行解密运算,将解密结果和UID进行对比。

5、如果UID和密钥匹配,则可认为这颗芯片里运行的程序是经过授权的。不匹配则进行其他处理。

这样,就算将芯片内的二进制程序数据COPY出来,换了颗芯片也没法运行。

六、stm32输出电压?

如果是推挽输出高电平3.3V,OD输出可以是5V或者更低电压,具体取决于上拉电阻所连接的结点电压。

七、stm32 tft时钟频率设置?

看你使用的MCU最高主频是否能跑到216MHz. 确定你使用的外部晶振频率,如果未使用外部晶振,使用内部晶振也可以。

时钟信号进来后一般都会进行除频,将频率降到一个比较小的值,除多少倍可以在cube中选择。

将除频后的频率输入到PLL中进行倍频,倍频参数可以在cube中选择,结果得到216MHz。 总结一下公式,晶振(MHz) / (除频数) * (倍频数) = 216MHz,例如 8 / 2 * 54 = 216

八、stm32系统时钟的配置?

上面所给的程序是使用内部晶振的,而通常开发板都会使用外部晶振通过倍频使用。内部晶振最高只能倍频到64MHz,而使用外部晶振能够倍频到72MHz。如果板子上确实有外部晶振,请使用外部晶振!使用外部晶振配置实例如下:使用HSE时钟,程序设置时钟参数流程:

1、将RCC寄存器重新设置为默认值 RCC_DeInit;

2、打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON);

3、等待外部高速时钟晶振工作 HSEStartUpStatus = RCC_WaitForHSEStartUp();

4、设置AHB时钟 RCC_HCLKConfig;

5、设置高速AHB时钟 RCC_PCLK2Config;

6、设置低速速AHB时钟 RCC_PCLK1Config;

7、设置PLL RCC_PLLConfig;

8、打开PLL RCC_PLLCmd(ENABLE);

9、等待PLL工作 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

10、设置系统时钟 RCC_SYSCLKConfig;

11、判断是否PLL是系统时钟 while(RCC_GetSYSCLKSource() != 0x08)12、打开要使用的外设时钟 RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd()

九、stm32外部晶振如何查询?

在你使用库函数的时候会判断外部晶振是否启动,然后执行相应的程序。 HSEStartUpStatus=RCC_WaitForHSEStartUp(); if(HSEStartUpStatus==SUCCESS)

十、当stm32定时器用外部时钟时io口用什么模式?

只使用stm32定时器的定时功能是不需要初始化外部IO口的,只有你用到PWM或脉冲计数,捕获等功能才会初始化对应的IO口。

PWM一般用推挽输出,脉冲计数或捕获之类的输出可以用浮空输入(其他输入方式也是可以的,只要你理解了那些输入方式)。