STM32/GD32学习指南-踩坑之(一)外部晶振配置,初始化失败,不起振

这篇具有很好参考价值的文章主要介绍了STM32/GD32学习指南-踩坑之(一)外部晶振配置,初始化失败,不起振。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GD32使用外部有源晶振和无源晶振的问题,型号为GD32 F450

一、GD32配置使用外部晶振

1.使用外部无源晶振

找到startup_gd32f450_470.s汇编文件,找到SystemInit()函数跳转进去

stm32晶振设置,GD32,单片机,外部晶振,单片机,stm32,mcu,linux,c语言

在底部找到system_clock_config()函数,再次跳转进去

stm32晶振设置,GD32,单片机,外部晶振,单片机,stm32,mcu,linux,c语言

选中宏定义:__SYSTEM_CLOCK_200M_PLL_IRC16M,跳转,如图

将内部时钟定义注释掉,打开相应的外部时钟的定义:__SYSTEM_CLOCK_200M_PLL_25M_HXTAL

根据自己的需求打开对应的系统时钟配置定义,比如我用的是外部25MHZ晶振,系统时钟配置为200MHZ,如果定义中没有自己想要的时钟转换关系,则需要自己编写对应的时钟配置函数,选取合适的分频倍频系数等。

stm32晶振设置,GD32,单片机,外部晶振,单片机,stm32,mcu,linux,c语言

stm32晶振设置,GD32,单片机,外部晶振,单片机,stm32,mcu,linux,c语言

 HXTAL_VALUE宏定义需要进行修改,改为外部时钟实际的频率,我用的25M,即改为25000000

同时__SYS_OSC_CLK宏定义改为:__HXTAL

stm32晶振设置,GD32,单片机,外部晶振,单片机,stm32,mcu,linux,c语言

 跳转到__SYSTEM_CLOCK_200M_PLL_25M_HXTAL对应的系统时钟配置函数:system_clock_200m_25m_hxtal(void)

此函数内即为配置系统各种总线时钟的代码,可根据自己需求修改。

2.使用外部有源晶振

使用有源晶振的话,需要在上述system_clock_200m_25m_hxtal(void)中添加一句话,在RCU_CTL |= RCU_CTL_HXTALEN;前面添加:

rcu_osci_bypass_mode_enable(RCU_HXTAL);

即启用旁路模式-也就是有源外部晶振

注意:无源外部晶振如果添加这句话,会一直卡死在该函数里面,导致时钟初始化失败。

stm32晶振设置,GD32,单片机,外部晶振,单片机,stm32,mcu,linux,c语言

二、踩坑过程

        开发过程中,遇到GD32初始化时钟一直卡在system_clock_200m_25m_hxtal(void)函数里面,卡在了RCU_CTL_HXTALSTB标志位的检测。该标志位表示晶振初始化是否稳定,为硬件置位,软件无法操作。刚开始尝试了各种网上的软件办法去解决,都没有用,还修改过硬件一些电路,最后发现是使用的那个型号的GD32片子有问题,其根本不支持外部晶振起振,有源无源都不支持,真的是贼坑,浪费了很多时间,具体型号是GD32 F450 VGH6,希望大家以后不要踩坑。

希望大家点赞、收藏、关注哦!!!ヾ(o◕∀◕)ノ文章来源地址https://www.toymoban.com/news/detail-641257.html

到了这里,关于STM32/GD32学习指南-踩坑之(一)外部晶振配置,初始化失败,不起振的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32CubeMX学习三 之外部中断

    记录一下STM32CubeMX的学习笔记,同时分享给初学的小白,希望一起进步。 如何使用STM32CubeMX以及工程创建在之前的博客有提到,这里就直接从外部中断讲起。 编译环境:KEIL 代码生成:STM32CubeMX 库:HAL MCU:STM32F072 假设你的cubeMX工程已经建好,这里我们配置KEY1、KEY2、KEY3三个按

    2023年04月08日
    浏览(24)
  • stm32学习笔记-5EXIT外部中断

    注:笔记主要参考B站 江科大自化协 教学视频“STM32入门教程-2023持续更新中”。 注:工程及代码文件放在了本人的Github仓库。 图5-1 中断及中断嵌套示意图 中断 是指在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理

    2024年02月09日
    浏览(26)
  • 【STM32】STM32学习笔记-定时器定时中断 定时器外部时钟(14)

    1.1 TIM_InternalClockConfig 1.2 TIM_TimeBaseInit 1.3 TIM_TimeBaseInitTypeDef 1.4 TIM_ClearFlag 1.5 TIM_ITConfig 1.6 TIM_Cmd 1.7 中断服务函数 参考程序 1.8 TIM_ETRClockMode2Config timer.h timer.c main.c timer.h timer.c main.c 09-定时器定时中断.rar 10-定时器外部时钟.rar 参考: 【STM32】江科大STM32学习笔记汇总

    2024年02月03日
    浏览(32)
  • STM32 学习笔记(六)定时器中断:内部时钟模式,外部时钟模式

    定时器是功能最强大,内容最复杂的32结构。 之前51用过的功能,定时产生中断。 输出比较,常用于产生 PWM 波形,驱动电机等。 输入捕获,测量方波频率。 编码器,读取正交编码器的波形。 最大定时时间:72M/65536/65536=中断频率,中断频率取倒数是最大定时时间。 定时器可

    2024年02月08日
    浏览(34)
  • stm32标准库和HAL库的对比学习3.《学习外部中断EXIT和应用》

            本人是大一的学生,学习了一段时间的stm32,此系列博客为个人的学习笔记,方便个人复习,如有错误或问题,非常非常欢迎大家来大力指正。 简单用文字说一下原理。 如果先要清楚了解建议去b站看一下keysking大佬的教程,很有趣易懂( 本视频的部分图也来自keys

    2024年01月19日
    浏览(28)
  • 【嵌入式学习-STM32F103-TIM-定时中断和外部时钟】

    1、定时器基本定时,定一个时间,然后让定时器每隔一段时间产生一个中断,来实现每隔一个固定时间执行一段程序的目的,比如要做一个时钟、秒表或者使用一些程序算法 2、定时器输出比较的功能,输出比较这个模块最常见的用途是产生PWM波形,用于驱动电机等设备,使

    2024年02月12日
    浏览(47)
  • 【STM32F407学习笔记】中断优先级管理与外部中断

    计算机系统中中断占有极其重要的地位,在嵌入式系统中更是如此。中断机制能让计算机有效合理的发挥效能和提高效率。 涉及外设 :EXIT外部中断,NVIC内嵌向量中断控制器。 计算机在执行程序的过程中,当出现异常情况或特殊情况时,计算机停止现在程序的运行,转向对

    2024年02月02日
    浏览(39)
  • 江科大stm32视频学习笔记——TIM定时中断&定时器外部时钟

    目录 一、TIM(Timer)定时器简介  1.1 定时器类型 摘要 1.1.1 基本定时器 1.1.2 通用定时器 1.1.3 高级定时器  1.2 定时中断基本结构 1.2.1 结构框图 1.2.2 时序图 二、定时器定时中断定时器外部时钟 2.1 内部时钟闹钟代码 2.1.1 Timer.c 2.1.2 Buzzer.c加入间隔发声函数 2.1.3 main.c 2.1.4 实验视频

    2024年01月23日
    浏览(43)
  • STM32F103C8T6的学习(4)——外部中断

    :  本教程基于up主江科大自化协——“STM32入门教程”记录的个人学习笔记 跳转链接: STM32入门教程-2022持续更新中_哔哩哔哩_bilibili  中断: 在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后

    2024年02月02日
    浏览(34)
  • 【GD32/STM32】FreeRtos移植

    ​ (1)下载FreeRtos源码包 ​ FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions ​ (2)将源文件添加至工程 ​ (3)将GD32中的三个中断交由FreeRtos接管 ​ (4)配置管理FreeRTOS.h文件 ​ (5)FreeRtos基本使用方法 源码包结构 1.Demo中存放的

    2024年01月20日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包