stm32 实现外部晶振变换有2种方法:

第一种修改系统库函数:

第一步,打开stm32f10x.h,将

   #define HSE_VALUE    ((uint32_t)8000000)  修改为:  #define HSE_VALUE    ((uint32_t)12000000)  重要必须做

第二步,打开system_stm32f10x.c,修改PLL参数,将

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |  RCC_CFGR_PLLMULL));

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);

修改为:

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); 如果是16M晶振,可改变PLLXTPRE

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);

第三步,自己试验,不设置第三步,串口通讯传送数据也正常,打开建立的STM32工程,选择Projects-〉Options for target ***,找到Target标签,外接的晶振默认是8MHz,我们将外接的晶振参数修改为12MHz,确定保存,再编译,调试即可。

第二种使用标准库函数:

使用下列火哥的代码(只是改变了PLLMULL6),不需要设置上面的第一步和第三步串口通讯也正常。但有时需要修改第一步(试验证明)。代码如下:

#include "bsp_rccclkconfig.h"void HSE_SetSysClk( uint32_t RCC_PLLMul_x )
{ErrorStatus HSEStatus;// 把RCC 寄存器复位成复位值RCC_DeInit();   // 使能 HSE RCC_HSEConfig(RCC_HSE_ON);HSEStatus = RCC_WaitForHSEStartUp();if( HSEStatus == SUCCESS ){// 使能预取指FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);FLASH_SetLatency(FLASH_Latency_2);RCC_HCLKConfig(RCC_SYSCLK_Div1);RCC_PCLK1Config(RCC_HCLK_Div2);RCC_PCLK2Config(RCC_HCLK_Div1);// 配置 PLLCLK = HSE * RCC_PLLMul_xRCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_x);// 使能PLLRCC_PLLCmd(ENABLE);// 等待PLL稳定while( RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET );// 选择系统时钟RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);while( RCC_GetSYSCLKSource() != 0x08 );}else{/* 如果HSE 启动失败,用户可以在这里添加处理错误的代码 */}
}
#ifndef __BSP_RCCCLKCONFIG_H
#define __BSP_RCCCLKCONFIG_H#include "stm32f10x.h"void HSE_SetSysClk( uint32_t RCC_PLLMul_x );#endif /*__BSP_RCCCLKCONFIG_H */
#include "stm32f10x.h"
#include "bsp_led.h"
#include "bsp_usart.h"
#include "bsp_rccclkconfig.h"//添加/*** @brief  主函数* @param  无  * @retval 无*/
int main(void)
{
//  uint8_t a[10]={100,2,3,4,5,6,7,8,9,10};USART_Config();HSE_SetSysClk( RCC_PLLMul_6 );//添加printf( "串口printf函数测试\n" );//    Usart_SendByte(DEBUG_USARTx,'A');//   Usart_SendHalfWord(DEBUG_USARTx, 0xff56);// Usart_SendStr(DEBUG_USARTx, "欢迎使用秉火STM32F103开发板 \n");//   Usart_SendArray(DEBUG_USARTx, a,10);while (1){}
}

STM32 F103 外部晶振8M改为12M相关推荐

  1. STM32F105、107RB使用外部晶振8M时配置外设时钟为72M

    转发:STM32F105RBT6使用外部晶振8M时配置外设时钟为36M_yunke120的博客-CSDN博客 STM32F105.107属于互联型芯片在stm官方库文件设置中默认外接晶振为25MHZ, ...

  2. stm32启用内部晶振(stm32设置外部晶振)

    STM32中的晶振电路有什么作用 stm32  有两个可接入的外部晶振,自己内部也有低俗的晶振.举个例子,手册也有说明低速主要给RTC使用了,高速是给一些外设及内核提供时钟元,内部的主要是给看门狗用或 ...

  3. STM32外部晶振8M更改为25M

    注:修改F4去stm32f4xx.h/system_stm32f4xx.c , 修改F3去stm32f10x.h/system_stm32f10x.c 修改的地方之一:stm32f4xx.h里面的HS ...

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

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

  5. STM32F10x 更改外部晶振后,修改时钟频率的方法

    转载自:https://blog.csdn.net/qq_26039331/article/details/78751047 此文章为引用 正点原子详细讲解 刚刚接触STM32的时候,用的都是8M晶振 ...

  6. stm32不使用外部晶振管脚怎么处理_stm32103如果不用32k晶振,那引脚是悬空还是接地?...

    如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空. 2)对于少于100脚的产品,有2种接法: 2.1)OSC_I ...

  7. 关于STM32 RTC时钟使用内部/外部晶振的切换方法

    对于使用STM32单片开发项目的同志,经常会使用到STM32的RTC功能,而在配置RTC的功能时需要配置晶振的使用,可以使用内部晶振或外部晶振,配置流程参考官方的示例代码即可. 但在之前的项目中遇到一 ...

  8. (转载)STM32 外部晶振电路设计和匹配

    (转载来自:https://blog.csdn.net/Seaman_TY/article/details/93090532) STM32的时钟源 STM32F103有两种主时钟方案,一个是依靠内部R ...

  9. STM32 USB虚拟串口调试总结(内部晶振、外部晶振配置、硬件电路说明、测试方法)

    目录 1.参考链接: 2.虚拟串口硬件说明 2.1.程序中无需配置硬件的设计:D+直接接了3.3V的上拉电阻. 2.2.需要程序中配置D+上拉电阻使能的设计:可以软件模拟USB插拔,便于固件更新后自动 ...

最新文章

  1. 高斯消元法对矩阵LU分解的影响
  2. UFLDL深度学习笔记 (三)无监督特征学习
  3. DarkTrack 4 Alien Version Released RAT 下载地址视频教程
  4. 提取文件出错_提取中文、英文和数字,其实很简单
  5. boost::multi_array模块实现创建负步幅视图的小测试
  6. Cognos 10.1 饼图百分比小数点显示的问题
  7. html5 自带video内存泄露_C++ 如何避免内存泄露?
  8. 浏览器宽度和高度的说明
  9. 责任分配矩阵和raci的区别_数字音频处理器和调音台的区别是什么
  10. ThinkPHP 漏洞利用工具
  11. 线性调频信号(chirp signal)
  12. GD32F103实战笔记
  13. deepin photoshop_Linux/Deepin 系统简单安装 Photoshop CS6 教程,附安装包
  14. 根据日期算星座 mysql_php根据日期获取星座
  15. CondConv: Conditionally Parameterized Convolutions for Efficient Inference论文解读
  16. 什么是虚拟主机?虚拟主机的作用有哪些?
  17. 爬虫之上传文件,request如何上传文件
  18. 完全卸载office(手动卸载)、微软工具自动卸载、安装Office时提示错误1310、写入文件“GROOVEEX“时错误,请确认您有权限访问该目录
  19. Inno setup打包vc++运行库
  20. 分享一套很有质感的黑色鼠标指针

热门文章

  1. 浅谈使用KMeans进行性别与年龄的聚类分析
  2. 应用分享:GIF压缩助手
  3. java中laber字体颜色设置,QLabel:设置文本和背景的颜色
  4. 愿你永远像个boy,找到自己的光亮
  5. 软件测试课程设计——智云云盘
  6. redis rce漏洞安全_从重新定位到RCE:我从广告到网络安全的旅程
  7. C# Winform 实现窗体无系统边框,但是具有系统边框的所有功能,同时保证控件不闪烁
  8. 智能体重秤方案/案列/APP/小程序
  9. OpenCV-Python (官方)中文教程(部分一)
  10. wlan协议—802.11n—802.11ac 5G和2.4G