STM32F103 72MHz时钟设置
2020-07-06 00:34
73 查看
将系统时钟初始化到72MHz的函数
根据数据手册和库函数,设置STM32时钟为72MHz- 这是.c文件
#include "clock.h" void Set_SysClockTo72M(void) { unsigned int faultTime = 0; unsigned int rccCrHserdy = 0; unsigned int rccCrPLLrdy = 0; rRCC_CR = RCC_CR_RESET; rRCC_CR &= ~(1<<16); rRCC_CR |= (1<<16); do { rccCrHserdy = rRCC_CR & (1<<17); faultTime++; } while ((faultTime<0x0FFFFFFF) && (rccCrHserdy==0)); if ((rRCC_CR & (1<<17)) != 0) { rFLASH_ACR |= 0x10; rFLASH_ACR &= (~0x03); rFLASH_ACR |= 0x02; rRCC_CFGR &= (~((0x0F<<4) | (0x07<<8) | (0x07<<11))); rRCC_CFGR |= ((0x0<<4) | (0x04<<8) | (0x0<<11)); rRCC_CFGR &= (~((0x01<<16) | (0x1<<17))); rRCC_CFGR |= ((0x01<<16) | (0x0<<17)); rRCC_CFGR &= (~(0x0f<<18)); rRCC_CFGR |= (0x07<<18); rRCC_CR |= (0x01<<24); faultTime = 0; do { rccCrPLLrdy = rRCC_CR & (1<<25); faultTime++; } while ((faultTime<0x0FFFFFFF) && (rccCrPLLrdy==0)); if ((rRCC_CR & (1<<25)) == (1<<25)) { rRCC_CFGR &= (~(0x03<<0)); rRCC_CFGR |= (0x02<<0); faultTime = 0; do { rccCrPLLrdy = rRCC_CFGR & (0x03<<2); faultTime++; } while ((faultTime<0x0FFFFFFF) && (rccCrPLLrdy!=(0x02<<2))); if(rRCC_CFGR & (0x03<<2)) { } else { while(1); } } else { while(1); } } else { while(1); } }
- 这是.h文件
#ifndef __CLOCK_H__ #define __CLOCK_H__ #define FLASH_ACR 0x40022000 #define RCC_BASE 0x40021000 #define RCC_CR (RCC_BASE + 0x00) #define RCC_CFGR (RCC_BASE + 0x04) #define rRCC_CR (*((volatile unsigned int *)RCC_CR)) #define rRCC_CFGR (*((volatile unsigned int *)RCC_CFGR)) #define rFLASH_ACR (*((volatile unsigned int *)FLASH_ACR)) #define RCC_CR_RESET (0x00000083) void Set_SysClockTo72M(void); #endif
(为什么无法正常显示keil文件的中文注释…)
相关文章推荐
- stm32cubeMX学习十二、为什么配置时钟72MHz却变成了64MHz?(基于野火STM32F103ZET6开发板)
- 【STM32F103攻城笔记】内部晶振HSI倍频设置系统时钟
- 【STM32F103攻城笔记】外部晶振HSE倍频设置系统时钟
- UBOOT start.S 关于S3C2440时钟设置的理解
- CentOS 7.x中正确设置时间与时钟服务器同步
- 2440时钟设置浅谈(带程序)
- 自定义View——可拖动设置时间的时钟具体实现2
- linux hwclock命令参数及用法详解--linux显示/设置硬件时钟命
- 批处理的时钟设置
- Android P 中时钟界面的日期未与设置的日期同步
- I2C子系统之I2C总线时钟频率设置
- linux:时钟设置
- JZ2440:时钟设置
- u-boot-2013.07在mini2440上的移植(三):时钟体系的设置
- LINUX设置时钟
- RHEL7 -- 使用Chrony设置时间与时钟服务器同步
- STM32F107的时钟设置由25M修改成8M
- s3c2410 ARM 时钟与设置
- C++时钟类 模拟电子时钟 设置时间后可自动更新时间
- 我使用过的Linux命令之hwclock - 查询和设置硬件时钟