STM32 F103 外部晶振8M改为12M
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相关推荐
- STM32F105、107RB使用外部晶振8M时配置外设时钟为72M
转发:STM32F105RBT6使用外部晶振8M时配置外设时钟为36M_yunke120的博客-CSDN博客 STM32F105.107属于互联型芯片在stm官方库文件设置中默认外接晶振为25MHZ, ...
- stm32启用内部晶振(stm32设置外部晶振)
STM32中的晶振电路有什么作用 stm32 有两个可接入的外部晶振,自己内部也有低俗的晶振.举个例子,手册也有说明低速主要给RTC使用了,高速是给一些外设及内核提供时钟元,内部的主要是给看门狗用或 ...
- STM32外部晶振8M更改为25M
注:修改F4去stm32f4xx.h/system_stm32f4xx.c , 修改F3去stm32f10x.h/system_stm32f10x.c 修改的地方之一:stm32f4xx.h里面的HS ...
- STM32系列修改外部晶振以及代码的修改(f103、f105为例)
此文章为引用 正点原子详细讲解 刚刚接触STM32的时候,用的都是8M晶振.比如你想更换到为外部晶振为12M,但是主频仍想用72M的.该如何设置?或者想倍频到更高的主频该怎么修改? 例子就直接直接拿& ...
- STM32F10x 更改外部晶振后,修改时钟频率的方法
转载自:https://blog.csdn.net/qq_26039331/article/details/78751047 此文章为引用 正点原子详细讲解 刚刚接触STM32的时候,用的都是8M晶振 ...
- stm32不使用外部晶振管脚怎么处理_stm32103如果不用32k晶振,那引脚是悬空还是接地?...
如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空. 2)对于少于100脚的产品,有2种接法: 2.1)OSC_I ...
- 关于STM32 RTC时钟使用内部/外部晶振的切换方法
对于使用STM32单片开发项目的同志,经常会使用到STM32的RTC功能,而在配置RTC的功能时需要配置晶振的使用,可以使用内部晶振或外部晶振,配置流程参考官方的示例代码即可. 但在之前的项目中遇到一 ...
- (转载)STM32 外部晶振电路设计和匹配
(转载来自:https://blog.csdn.net/Seaman_TY/article/details/93090532) STM32的时钟源 STM32F103有两种主时钟方案,一个是依靠内部R ...
- STM32 USB虚拟串口调试总结(内部晶振、外部晶振配置、硬件电路说明、测试方法)
目录 1.参考链接: 2.虚拟串口硬件说明 2.1.程序中无需配置硬件的设计:D+直接接了3.3V的上拉电阻. 2.2.需要程序中配置D+上拉电阻使能的设计:可以软件模拟USB插拔,便于固件更新后自动 ...
最新文章
- 高斯消元法对矩阵LU分解的影响
- UFLDL深度学习笔记 (三)无监督特征学习
- DarkTrack 4 Alien Version Released RAT 下载地址视频教程
- 提取文件出错_提取中文、英文和数字,其实很简单
- boost::multi_array模块实现创建负步幅视图的小测试
- Cognos 10.1 饼图百分比小数点显示的问题
- html5 自带video内存泄露_C++ 如何避免内存泄露?
- 浏览器宽度和高度的说明
- 责任分配矩阵和raci的区别_数字音频处理器和调音台的区别是什么
- ThinkPHP 漏洞利用工具
- 线性调频信号(chirp signal)
- GD32F103实战笔记
- deepin photoshop_Linux/Deepin 系统简单安装 Photoshop CS6 教程,附安装包
- 根据日期算星座 mysql_php根据日期获取星座
- CondConv: Conditionally Parameterized Convolutions for Efficient Inference论文解读
- 什么是虚拟主机?虚拟主机的作用有哪些?
- 爬虫之上传文件,request如何上传文件
- 完全卸载office(手动卸载)、微软工具自动卸载、安装Office时提示错误1310、写入文件“GROOVEEX“时错误,请确认您有权限访问该目录
- Inno setup打包vc++运行库
- 分享一套很有质感的黑色鼠标指针
热门文章
- 浅谈使用KMeans进行性别与年龄的聚类分析
- 应用分享:GIF压缩助手
- java中laber字体颜色设置,QLabel:设置文本和背景的颜色
- 愿你永远像个boy,找到自己的光亮
- 软件测试课程设计——智云云盘
- redis rce漏洞安全_从重新定位到RCE:我从广告到网络安全的旅程
- C# Winform 实现窗体无系统边框,但是具有系统边框的所有功能,同时保证控件不闪烁
- 智能体重秤方案/案列/APP/小程序
- OpenCV-Python (官方)中文教程(部分一)
- wlan协议—802.11n—802.11ac 5G和2.4G