一般的STM32控制板搭载的是8M晶振。我们也熟悉了8M晶振的使用方法。但是,当遇到12M晶振是如何修改STM32系统时钟呢?
具体步骤如下:
第一步,全局搜索HSE_VALUE
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
修改为:
#define HSE_VALUE ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
第二步,打开system_stm32f10x.c,修改PLL参数,将
/* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */
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);
修改为:
/* PLL configuration: PLLCLK = HSE * 6 = 72 MHz */
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_PLLMULL6);//12MHZ,SYSCLK=HSE*6=72MHZ
或者一句RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6); 就可以解决了
这样就可以进行正常的72MHZ速度跑了。
关键字:STM32 系统时钟 晶振
引用地址:
如何修改STM32系统时钟
推荐阅读最新更新时间:2024-11-13 11:58
STM32部分知识之I2C
I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。 多主机I2C总线系统结构: 因为STM32自带的I2C不稳定所以采用模拟I2C,所以首先的初始化I0口 void IIC_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,
[单片机]
STM32地址映射、位带操作
1:前言 以前学51的时候,没有注重地址的这个概念,因为51寄存器少,一个reg52.h里面涵盖了你要用到的所有寄存器地址,你只需要去写几个字母调用一下就可以了。我甚至一度以为TMOD就是TMOD,单片机生产出来,程序就是这样写,就好像用手机指纹解锁,你只是把手指放上去,手机就解锁了。你以为理所应当,但是手机却做了很多工作。 直到学习32后,由于庞大的寄存器数量,让我不得不去注意到为什么我写几个字母,就可以操作到我想要操作的寄存器上去。SO,地址概念也就被我重视起来。下面只是简单的一些我理解的32地址知识。如有不足,咋~~评论区过两招!!! 2:地址(门牌号) “地址”:第一印象,就是一张地图。一个你家的门牌号。就是一条
[单片机]
ATmega168 时钟系统及其分布
时钟系统及其分布 Figure12为ATmega168 的主要时钟系统及其分布。这些时钟并不需要同时工作。为了降低功耗,可以通过使用不同的睡眠模式来禁止无需工作的模块的时钟,详见 P32” 电源管理及休眠模式 ” 。下面为时钟系统的详细描述。 CPU 时钟- clkCPU CPU时钟与操作AVR内核的子系统相连,如通用寄存器文件、状态寄存器及保存堆栈指针的数据存储器。终止CPU 时钟将使内核停止工作和计算。 I/O 时钟- clkI/O I/O时钟用于主要的I/O 模块,如定时器/ 计数器、SPI 和USART。I/O 时钟还用于外部中断模块。要注意的是有些外部中断由异步逻辑检测,因此即使I/O 时钟停止了这些中断仍然可以得到
[单片机]
STM32直接操作寄存器点亮第一个LED灯
来做个实验:不依赖任何库,直接操作寄存器点亮第一个LED灯 分析上图可知,四个led灯等分别连接着STM32F407的四个引脚,引脚输出低电平,led亮,输出高电平,led灭 因为STM32与51单片机不同,它多一个时钟系统,旨在产生不同频率供不同设备使用,使用之前,必须先开启对应的时钟,所以在控制GPIO寄存器之前,我们要先打开GPIOF组的时钟 通过查找《STM32F4xx中文参考手册》第53页得知,RCC的基地址(也就是起始地址)为0x40023800,在135页查得其外设时钟使能寄存器的偏移地址为0x30,该偏移是相对于RCC基地址的偏移,因此计算外设时钟使能寄存器的地址为: RCC_AHB1ENR = R
[单片机]
stm32开发新方式-platformio
硬件测试环境: macOS stm32f103c8t6最小系统板 st-link v2 新建pio工程 创建工程文件夹并进入: mkdir test && cd test 查找自己适合的板子 pio boards 会看到以下结果,十里这里选择genericSTM32F103C8,这里执行这个命令,主要是查找对应自己最小系统板的board ID: ... disco_l152rb STM32L152RBT6 32Mhz 128kB 16kB ST STM32LDISCOVERY disco_f100rb STM32F100RBT6 24Mhz 128kB 8kB ST STM32VLDISCOVERY generic
[单片机]
STM32CubeMX----杂记
(1)在使用FSMC作为LCD接口时,同时ENABLE了FreeRTOS,发现生成的工程文件,编译之后会出问题。 研究后发现问题出在“FreeRTOSConfig.h”这段代码: /* Cortex-M specific definitions. */ #ifdef __NVIC_PRIO_BITS /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ #define configPRIO_BITS __NVIC_PRIO_BITS #else #define configPRIO_BITS 4 #
[单片机]
基于STM32+华为云IOT设计智能称重系统
伴随着网络技术,各种通讯技术,传感器技术的飞速发展,物联网技术成为了当今技术领域发展为迅速的技术。而物联网技术的核心仍然是以互联网技术为基础的,物联网是新一代信息技术的重要组成部分,也是信息化时代的重要发展阶段。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。 本设计的模型来源于物流、矿山、高速公路等场合,车辆称重地螃的智能化升级要求,设计基于物联网的智能在线称重方案,开发智能称重控制器,合理选择部署多个重量传感器和必要的算法、通过WIFF通信模块、GPS定位模块,采集车辆重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面
[单片机]
对STM32 NIVC的了解
用STM32做项目已经有段时间了,但是我忽然发现我对NVIC其实一点都不了解,所以今天补习了一下NVIC的知识以及我自己对NVIC中断优先级设置的了解,希望对大家有所帮助: 对于NVIC中断优先级的设置一直都不是很清楚; 具体函数如下: /* Configure one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); // 优先级组设置 /* Timer2中断*/ NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; // 通道设置 NVIC_
[单片机]