stm32不使用外部晶振管脚怎么处理_stm32的外部晶振不起振以及更改外部晶振值的问题...

2023-10-31

今天有人问我关于外部晶振不起振以及如歌更改32的外部晶振,在此我做一个简单的记录(以stm32f1系列为例,其余类似)。

1.晶振不起振

此次遇到的问题倒不是出在电路上,实际上还是软件上的问题。画的新板子,换了一块贴片的晶振,与原来的直插式有点区别。首先,打印当前系统时钟频率,调用函数:RCC_GetClocksFreq(&RCC_Clocks);

printf("SYSCLK_Frequency: %d\r\n",RCC_Clocks.SYSCLK_Frequency);

结果打出来的是:SYSCLK_Frequency: 8000000

事实上,正常的f1系列的主频应该为72Mhz,所以应该打印出72000000。由此判断,应该是晶振出现了毛病。于是准备开仿真调试一下,结果尴尬了,居然打印除了72000000?你说啥?这就不懂了,怎么仿真的时候正常,下进去的程序就不行了?仔细回想一下32的启动过程,想到系统初始化的时候在main函数调用之前会进入SystemInit函数,如下(文件为startup_stm32f10x_hd.s启动文件):

a5d697f3119d

启动文件源码截图

从这里入手,经过层层深入,根据宏定义,发现其最终调用了SetSysClockTo72()函数,里面有一个等待HSE(外部高速晶振)起振的超时:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stm32不使用外部晶振管脚怎么处理_stm32的外部晶振不起振以及更改外部晶振值的问题... 的相关文章

  • UE4开发学习笔记(双人游戏共享视角,共享相机)

    先创建一个共享相机的actor类share camera 里面只要spring arm和camera就行 在关卡蓝图里设置摄像机位置 setviewtargetwithblend是将character本身的摄像机过渡到公共摄像机 这里的bl
  • 前端小白练习题查缺补漏2

    1 声明不是 HTML 标签 它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令 声明没有结束标签 声明对大小写不敏感 2 end Math pow 2 50 111111 假设的值 var start end 100
  • duilib-自定义圆形按钮-环形进度条控件

    duilib 自定义圆形按钮 环形进度条控件 如何自定义一个圆形按钮控件内嵌到环形进度条底部 点击按钮刷新进度条值 类似下图 1 在UIDefine h中增加宏定义 define DUI CTR BTN PROGRESS T btnProg
  • sqli-labs(27)

    0X01 先查询闭合 id 1 报错 id 1 正确 知道是 的闭合语句 0X02那么开始我们的注入之旅 空格过滤了 尝试一下 0a绕过 也被过滤了 那么用and 1 1构造闭合 id 1 1 1 显示正确 我们来爆一下数据名称 哦豁 un
  • 产品经理工作积累(1)

    相比较做技术工作的人来说 做产品工作的更倾向于软能力 而这种软能力体现在个人的产品思想上 更或者说做产品的思维或理念 做产品除了本身的产品设计能力外 还有一点就是产品的思想 同一种产品不太的产品做出来后产品形态都会不同 特别是对于一些有独特
  • 在 Shell 脚本中调用另一个 Shell 脚本的三种方式

    先来说一下主要以下有几种方式 fork 如果脚本有执行权限的话 path to foo sh 如果没有 sh path to foo sh exec exec path to foo sh source source path to foo
  • android 反编译方法、工具介绍

    网上有很多的反编译文章 个人认为写的比较好的文章有 APK反编译得工具总结 转载 hayhx 博客园 我也是参考其文章来的 本人写此文章目的 以及反编译运用场景 主要有以下几方面 记录反编译的方法 方便自己用的时候比较方便 起到记录的作用
  • python词频统计_Python中文词频统计

    1 下载一长篇中文小说 2 从文件读取待分析文本 3 安装并使用jieba进行中文分词 pip install jieba import jieba ljieba lcut text import jieba txt open r piao
  • async 和 await

    async async是一个加在函数前面的修饰符 被async修饰的函数会默认返回一个promise对象 可以使用then方法添加回调函数 返回的promise对象的结果是由async函数执行的返回值的结果来决定的 1 当async函数内部
  • 一步步教你用 WebVR 实现虚拟现实游戏

    翻译 疯狂的技术宅 www smashingmagazine com 2018 11 vir 在本教程中 我们将创建三维对象并为它们添加简单的交互 此外 你还可以学到如何在客户端和服务器之间建立简单的消息传递系统 虚拟现实 VR 是一种依赖
  • 说说HashMap的扩容机制

    HashMap的扩容机制 HashMap的数据结构 HashMap几个重要的元素 HashMap的扩容过程 1 为什么扩容 2 什么时候进行扩容 3 怎么扩容 HashMap的数据结构 JDK1 8为例 如图 先知道三个概念 table 存
  • Vmware安装Ubuntu出现 unable to find a medium containing a live file system

    一 前言 由于未知的原因 使用Vmware安装Ubuntu的时候 总是遇到奇怪的问题 忘记截图了 大致是 unable to find a medium containing a live file system 找了几个帖子 参考1 参考
  • ajax 调用node,Node.js 远程调用 方法大全

    关于Node js 远程调用 远程调用 简称 RPC 主要是指服务器或集群之间对处理过程的调用 通过远程调用可以打通不同系统之间的数据与功能 或是抽离与建立公共的逻辑统一提供服务 远程调用的两端也称为远程调用的客户端与服务端 一般是多对多的
  • 借助模糊逻辑将文化算法与和谐搜索相结合进行学习——文化和谐学习算法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 Matlab代码实现 4 参考文献 1 概述 文化和谐学习算法 创建于 18 Jan 2
  • 剑指 Offer 24. 反转链表

    定义一个函数 输入一个链表的头节点 反转该链表并输出反转后链表的头节点 示例 输入 1 gt 2 gt 3 gt 4 gt 5 gt NULL 输出 5 gt 4 gt 3 gt 2 gt 1 gt NULL 代码 Definition f
  • exchange 系统管理器 服务器,在“exchange系统管理器”安全里有个receive as是什么权限?谢谢...

    您好 用Visual Basic访问Microsoft Exchange和Outlook的数据 想通过Access中的Visual Basic for Applications VBA 和数据访问对象 DAO 的方法和对象来连接和导入来自E
  • 故事板(Storyboard)

    1 使用Storyboard完成各项常见功能 1 1 问题 故事板Storyboard是IOS5开始引入的一个新的系统 将多个视图文件 类似xib文件 集中到一个单独的可视化工作区间 负责创建和管理所有的界面及界面间的跳转 每一个Story
  • 【Log日志】springboot项目中集成Log日志详解

    springboot项目中集成Log日志详解 一 Log日志介绍 1 Log 日志组件主要作用及用途 2 日志的级别Level 级别控制 3 日志的输出Import 3 1 快速使用 3 2 日志文件输出 3 3 自定义配置 4 Sprin
  • 微派三轮面试总结

    三轮技术面 面试周期 2023 6 19 2023 6 26 目录 一面 1 介绍一下自己的项目 2 Vue2中父子组件的声明周期执行顺序是怎么样的 3 computed和watch的区别 4 Vue路由中包含两种模式 hash和histo

随机推荐