0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈STM32时钟配置及相关问题

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-24 11:16 次阅读

Ⅰ、写在前面

最近有很多朋友问:1.我的USART串口打印出来的数据是乱码?2.我的TIM定时器延时或定时不准确?

常见可能原因:

1.晶振问题:外部晶振不起振、或频率与配置不匹配。

2.软件问题:分频、倍频、时钟源选择等。

总结来说,主要还在于软件的问题。因为即使没有外部晶振,也可以使用内部晶振。

其实,软件的问题是容易得到解决的,只要你了解了STM32时钟配置里面具体内容就知道了。

关于本文的详细内容请看下面章节

Ⅱ、本文要点

要了解时钟的配置,就需要知道它在哪里配置,也就是还需要了解软件执行的流程。

1.软件流程

说软件流程是让大家知道系统时钟配置的位置。不管是使用寄存器开发,还是使用库(标准库、HAL库)开发STM32,工程中基本上都有“startup_stm32fxxxxx.s”这么一个启动文件。

在线调试的朋友应该知道,你点一下复位按钮,软件会跳转到下图的位置,其实可以看到复位之后第一个执行的函数就是【SystemInit】。说到这里,应该明白为什么我们在main函数开始没有看见时钟配置相关的函数了吧,程序是在复位后立马配置的时钟。

2.时钟配置位置

使用库库(标准库、HAL库)开发STM32的朋友,在工程中都可能会看到“system_stm32fxxx.c”这么一个文件,这个文件里面代码主要的功能就是配置STM32的系统时钟。

上面启动文件中说到的【SystemInit】函数就是在这个文件里面,【SystemInit】函数里面就是配置系统时钟的具体内容。配置系统时钟主要就是时钟源选择、分频、倍频等。

注意:STM32有多系列芯片,这里【SystemInit】函数里面代码的内容也因此不同。

3.外部晶振频率、系统时钟频率

对于初学者,容易受到影响的就是两个参数:HSE_VALUE(外部晶振频率)、SystemCoreClock(系统时钟)。这个两个参数在ST提供的库中都有一个参考值,一般的开发板都是按照参考值设计的晶振,所以不用修改。但如果不同,那么就要修改。位置分别在“stm32fxxx.h”和“system_stm32fxxx.c”文件下面,如下图(F4系列为例):

4.时钟树

时钟树是很好反应时钟时钟源选择、分频、倍频的一个框图,要深入理解,请下载相关参考手册查看RCC章节的时钟树,下面截取部分系列芯片时钟树图:

5.MCO时钟输出

验证时钟配置是否正确的方法可以通过MCO输出时钟,用示波器检测一下就知道了。我前面提供的软件工程中有一段代码(如下图),主要就是MCO时钟输出的代码。

Ⅲ、说明

需要深入掌握STM32系统时钟配置的内容,还需要你自己认真阅读以下源代码(建议看一下注释说明)。官方提供的代码从命名上都是很容易理解的。

相关文章:

STM32F4_RCC系统时钟配置及描述

以上总结仅供参考,若有不对之处,敬请谅解。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2264

    文章

    10852

    浏览量

    354099
  • USART
    +关注

    关注

    1

    文章

    195

    浏览量

    30753
  • 时钟配置
    +关注

    关注

    1

    文章

    14

    浏览量

    8606
收藏 人收藏

    评论

    相关推荐

    音频设备的PLL和时钟配置应用说明

    电子发烧友网站提供《音频设备的PLL和时钟配置应用说明.pdf》资料免费下载
    发表于 09-14 10:38 0次下载
    音频设备的PLL和<b class='flag-5'>时钟</b><b class='flag-5'>配置</b>应用说明

    器件的时钟配置和TAx5x1x系列的灵活时钟

    电子发烧友网站提供《器件的时钟配置和TAx5x1x系列的灵活时钟.pdf》资料免费下载
    发表于 08-28 11:03 0次下载
    器件的<b class='flag-5'>时钟</b><b class='flag-5'>配置</b>和TAx5x1x系列的灵活<b class='flag-5'>时钟</b>

    stm32用串口烧录怎么设置

    微控制器。 STM32CubeMX配置 打开STM32CubeMX,选择您的STM32芯片型号。 配置您的微控制器的
    的头像 发表于 08-22 09:33 993次阅读

    STM32F407系列使用HSI时钟后,PLL最高能配置到多少?

    最近在使用STM32F407系列,当使用HSI时钟后,PLL最高只能配置到42MHz,找了很多文档也没有介绍这方面的资料。如果超过42Mhz,就会发生跑飞的情况。我也试过配置到48MH
    发表于 04-26 07:49

    STM32F030CC USART时钟配置手册和IAR不一致的原因?

    STM32F030CCUSART时钟配置手册和IAR不一致
    发表于 04-12 08:27

    stm32f100用库3.5如何让配置系统时钟,8MHz晶振输入,如何配置为24MHz系统时钟

    请问,stm32f100用库3.5如何让配置系统时钟,8MHz晶振输入,如何配置为24MHz系统时钟?学习
    发表于 03-26 06:55

    STM32CubeMX 6.5.0时钟配置页面的ADC时钟源无法配置怎么解决?

    最新版STM32CubeMX 6.5.0,启动ADC功能后,时钟配置页面的ADC时钟源仍无法配置STM
    发表于 03-25 07:04

    关于STM32L476 DFSDM时钟配置的疑问求解

    stm32l4 配置DFSDM 时钟只能来之 DFSDM_CHANNEL_OUTPUT_CLOCK_SYSTEM不能来自DFSDM_CHANNEL_OUTPUT_CLOCK_AUDIO cubemx 6.10.0
    发表于 03-08 06:26

    雅特力AT32F423时钟配置

    简介时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的
    的头像 发表于 02-19 13:26 524次阅读
    雅特力AT32F423<b class='flag-5'>时钟</b><b class='flag-5'>配置</b>

    stm32使用AD5762配置程序

    如何使用STM32配置AD5762。 首先,我们需要确保STM32的开发环境已经搭建好,并且熟悉STM32的编程方式。接下来,我们将按照以下步骤来
    的头像 发表于 01-09 11:10 625次阅读

    雅特力AT32WB415时钟配置

    简介时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的
    的头像 发表于 12-20 08:14 431次阅读
    雅特力AT32WB415<b class='flag-5'>时钟</b><b class='flag-5'>配置</b>

    浅谈5G小基站中时钟及无源射频器件的应用

    浅谈5G小基站中时钟及无源射频器件的应用
    的头像 发表于 11-24 18:11 1096次阅读
    <b class='flag-5'>浅谈</b>5G小基站中<b class='flag-5'>时钟</b>及无源射频器件的应用

    利用STM32CubeMX解读时钟

    提供给芯片中的RTC(实时时钟)及IWDG(独立看门狗)使用。2,中速时钟MSIRC是“中速内部时钟”或“中速内部振荡器”,是STM32L系列独有的
    的头像 发表于 11-24 08:00 1068次阅读
    利用<b class='flag-5'>STM32</b>CubeMX解读<b class='flag-5'>时钟</b>树

    串口在STM32中的配置

    首先要明确几点:使用STM32串口外设中的哪一个?串口发送或者接收数据?串口相关的参数配置?发送或接收是否使用到中断? 下方为串口发送的配置。 1. RCC开启USART、串口TX/R
    的头像 发表于 11-10 16:09 2083次阅读
    串口在<b class='flag-5'>STM32</b>中的<b class='flag-5'>配置</b>

    使用STM32CCube IDE 配置 STM32H7VGT6 ADC时钟的问题

    小弟第一次使用STM32Cube IDE编写给STM32H743VGT6配置ADC功能 发现参数配置中没有时钟分频因子选项!更奇怪的是
    发表于 11-06 15:57