1.首先查看stm32手册,可以知道有一个时钟控制寄存器(RCC_CR),在该寄存器中,第16位和第0位和25位和24位分别为:
HSEON:外部高速时钟使能 (External high-speed clock enable)
HSION:内部高速时钟使能 (Internal high-speed clock enable)
PLLRDY:PLL时钟就绪标志 (PLL clock ready flag)
PLLON:PLL使能 (PLL enable)

如下图:

  1. 因此,当在串口以%x的形式打印RCC_CR寄存器的值的时候,输出的内容为0x3035283(也有可能为0x3035183)时,,此时第0位和第16位都为1,第25位和第24位也都为1,因此使用了外部晶振作为时钟源(因为stm32开始上电初始化时,需要内部8M晶振工作来进行初始化)。

  2. 当注释掉system_stm32f10x.c中的SystemInit()函数中的SetSysClock()函数,系统将默认使用内部时钟,此时读出RCC_CR寄存器的值为0x5283(或者0x5183),此时第16位、25位、24位都为0,第0位为1。


  • 但是笔者之前在项目开发时,遇到了一个测试值,输出的内容为0x15283。这时,第0位和第16位都为1,但是第25位和24位都为0

经过查阅stm32手册,发现stm32内部有时钟安全系统,如下图所示:

  • 内容大概就是,当使用HSE振荡器(外部晶振)作为输入时钟时,当发生时钟故障时,PPL输入时钟将会被关闭,切换到内部的HSI振荡器(内部晶振),因此RCC_CR寄存器中25位和24位都为0,此时stm32使用内部晶振作为时钟源

经过笔者的排查,发现确实是外部的晶振损坏了,当换上新的晶振后,工作正常。
因此,当开发项目时,测试发现RCC_CR寄存器中外部PLL时钟的位都为0时,如果外部电路测试没问题的话, 基本上就是外部晶振的问题了。

当手头上没有示波器,如何通过代码测试stm32外部晶振是否工作相关推荐

  1. stm32F103采用内部晶振8MHz时钟和外部晶振初始化代码

    使用HSE配置系统时钟(stm32F10x 系列 外部晶振一般为4M–25MHz,具体见芯片手册) 首先需要复位RCC寄存器! 使能HSE 判断HSE是否启动成功 使能预取指 设置FLASH等待周期 ...

  2. STM32系列修改外部晶振以及代码的修改(f103、f105为例)

    此文章为引用 正点原子详细讲解 刚刚接触STM32的时候,用的都是8M晶振.比如你想更换到为外部晶振为12M,但是主频仍想用72M的.该如何设置?或者想倍频到更高的主频该怎么修改? 例子就直接直接拿& ...

  3. 无源晶振用示波器如何测量

    首先要了解无源晶振的原理,测试无源晶振,要清楚的知道无源晶振有四脚和两脚之分,更要明白无源晶振的电路原理图和脚位图,才能对测试的结果的把控有效的掌握.下面扬兴科技与您一起学习和探索晶振测试的方法吧. ...

  4. 计算机主板上实时时钟晶振频率为,电脑主板晶振的识别及测量方法介绍

    一. 单位:赫兹"Hz" 1MHz=1000kHz=1000000Hz 符号: "X.Y" 二. 晶振的分类: 主板上晶振主要分为: 1.时钟晶振: 与时钟芯相 ...

  5. STM32使用非8M晶振时如何修改代码

    目前能找到的大部分代码都是默认8M外部晶振的,若使用的晶振不是8M则需要作一些修改.例如这次我使用的外部晶振是12M的,作如下修改. 1.首先需要修改"Option for target ' ...

  6. 强强联合!Papers with Code 携手 arXiv,上传论文、提交代码一步到位

    转自 | 机器之心 作者 | 魔王 刚刚,机器学习资源网站 Papers with Code 宣布与论文预印本平台 arXiv 进行合作,论文作者在 arXiv 上上传论文时可以同步上传官方和社区代码 ...

  7. 强强联合!Papers with Code携手arXiv,上传论文、提交代码一步到位

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 刚刚,机器学习资源网站 Papers with Code 宣布与论文预印本平台 arXiv 进 ...

  8. 微型计算机实验代码,上师大,微型计算机实验全代码.doc

    上师大,微型计算机实验全代码 实验一 LED实验 C8255 EQU 21AH CW8255 EQU 21BH CODE SEGMENT ASSUME CS:CODE,DS:CODE START: P ...

  9. php上传头像的代码,php头像上传预览实例代码

    说道上传图片,大家并不陌生,不过,在以后开发的项目中,可能并不会让你使用提交刷新页面式的上传图片,比如上传头像,按照常理,肯定是在相册选择照片之后,确认上传,而肯定不会通过form表单,点击submi ...

最新文章

  1. 一文带你了解光纤收发器和交换机之间的区别
  2. Gemini论文笔记
  3. 关于Docker官方CentOS镜像无法启动mysqld的总结
  4. AWS 专家教你使用 Spring Boot 和 DJL ,轻松搭建企业级机器学习微服务!
  5. Google走了 站长应该更相信百度
  6. 搭建大数据开发环境-Hadoop篇
  7. 如何修改zblog的css,修改Zblog中的CSS的方法
  8. 06-移动端开发教程-fullpage框架
  9. L1-052 2018我们要赢 (5 分)—团体程序设计天梯赛
  10. 基于java电子病历管理系统设计与实现
  11. java excel图表_Java 创建Excel图表
  12. 【大咖说】激活数据价值,永洪科技智胜法则
  13. Mac配置iTem2主题、字体、颜色
  14. Java自定义连接池
  15. MySql数据库简介(一)
  16. 【java】 【接口】【继承】【抽象类】案例 运动员和教练
  17. 十四、关于利用卡诺图快速解决时序电路自启动问题的研究
  18. 【博学谷学习记录】超强总结,用心分享 | java基础
  19. Android修改默认打开WLAN随时都可扫描
  20. import win32api出错

热门文章

  1. 睡眠---全面少眠的时代,你睡得好吗?
  2. 关于App自动化执行链接Appium服务包名正确但是报错An unknown server-side error occurred while processing the command
  3. Linux下MySQL报Table 'xxx' doesn't exist错误解决方法
  4. 快乐,因为有你——五一苏行记(一)
  5. 6月3日至5日 服务器信息维修,6月5日服务器例行维护公告(已完成)
  6. 越权修改用户密码案例
  7. 获取定位及附近位置 , 输入框搜索附近位置(三种方法)
  8. 安卓淘宝商店界面之高仿类CollapsinToolBar 直接搬运到项目中
  9. 41.Isaac教程--使用DOPE进行3D物体姿态估计
  10. 运维面试必问的负载均衡高频面试题(2021年最新版)