历史上的今天

今天是:2024年10月11日(星期五)

正在发生

2019年10月11日 | STM32F103 时钟配置

发布者:梦想启航 来源: eefocus关键字:STM32F103  时钟  配置 手机看文章 扫描二维码
随时随地手机看文章

STM32F103外部8M的振荡器,经过倍频后最高可以达到72M。


void RCC_DeInit(void)        将外设RCC寄存器重设为缺省值

void RCC_HSEConfig(u32 RCC_HSE)    设置外部高速晶振(HSE)

    RCC_HSE    取值如下:

        RCC_HSE_OFF     HSE晶振OFF

        RCC_HSE_ON     HSE晶振ON


        RCC_HSE_Bypass     HSE晶振被外部时钟旁路

ErrorStatus RCC_WaitForHSEStartUp(void) 等待HSE起振

该函数将等待直到HSE就绪,或者在超时的情况下退出

    返回值

一个ErrorStatus枚举值:

SUCCESS:HSE晶振稳定且就绪

ERROR:HSE晶振未就绪

void RCC_HCLKConfig(u32 RCC_HCLK) 设置AHB时钟(HCLK)

AHB(HCLK)时钟源自系统时钟(SYSCLK)

RCC_HCLK 取值如下:

RCC_SYSCLK_Div1 AHB时钟 = 系统时钟

RCC_SYSCLK_Div2 AHB时钟 = 系统时钟 / 2

RCC_SYSCLK_Div4 AHB时钟 = 系统时钟 / 4

RCC_SYSCLK_Div8 AHB时钟 = 系统时钟 / 8

RCC_SYSCLK_Div16 AHB时钟 = 系统时钟 / 16

RCC_SYSCLK_Div64 AHB时钟 = 系统时钟 / 64

RCC_SYSCLK_Div128 AHB时钟 = 系统时钟 / 128

RCC_SYSCLK_Div256 AHB时钟 = 系统时钟 / 256

RCC_SYSCLK_Div512 AHB时钟 = 系统时钟 / 512

void RCC_PCLK2Config(u32 RCC_PCLK2) 设置高速AHB时钟(PCLK2)

PCLK2时钟源自AHB时钟(HCLK)

RCC_PCLK2输入参数:

RCC_HCLK_Div1 APB2时钟 = HCLK

RCC_HCLK_Div2 APB2时钟 = HCLK / 2

RCC_HCLK_Div4 APB2时钟 = HCLK / 4

RCC_HCLK_Div8 APB2时钟 = HCLK / 8

RCC_HCLK_Div16 APB2时钟 = HCLK / 16

void RCC_PCLK1Config(u32 RCC_PCLK1) 设置低速AHB时钟(PCLK1)

RCC_PCLK1输入参数

RCC_HCLK_Div1 APB1时钟 = HCLK

RCC_HCLK_Div2 APB1时钟 = HCLK / 2

RCC_HCLK_Div4 APB1时钟 = HCLK / 4

RCC_HCLK_Div8 APB1时钟 = HCLK / 8


RCC_HCLK_Div16 APB1时钟 = HCLK / 16

void RCC_PLLConfig(u32 RCC_PLLSource, u32 RCC_PLLMul) 设置PLL时钟源及倍频系数

RCC_PLLSource输入参数

RCC_PLLSource_HSI_Div2 PLL的输入时钟 = HSI时钟频率除以2

RCC_PLLSource_HSE_Div1 PLL的输入时钟 = HSE时钟频率

RCC_PLLSource_HSE_Div2 PLL的输入时钟 = HSE 时钟频率除以2

RCC_PLLMul输入参数

RCC_PLLMul_2 PLL输入时钟 x 2

RCC_PLLMul_3 PLL输入时钟 x 3

RCC_PLLMul_4 PLL输入时钟 x 4

RCC_PLLMul_5 PLL输入时钟 x 5

RCC_PLLMul_6 PLL输入时钟 x 6

RCC_PLLMul_7 PLL输入时钟 x 7

RCC_PLLMul_8 PLL输入时钟 x 8

RCC_PLLMul_9 PLL输入时钟 x 9

RCC_PLLMul_10 PLL输入时钟 x 10

RCC_PLLMul_11 PLL输入时钟 x 11

RCC_PLLMul_12 PLL输入时钟 x 12

RCC_PLLMul_13 PLL输入时钟 x 13

RCC_PLLMul_14 PLL输入时钟 x 14

RCC_PLLMul_15 PLL输入时钟 x 15

RCC_PLLMul_16 PLL输入时钟 x 16

void RCC_PLLCmd(FunctionalState NewState) 使能或者失能PLL

NewState输入参数


ENABLE 或者 DISABLE

FlagStatus RCC_GetFlagStatus(u8 RCC_FLAG) 检查指定的RCC标志位设置与否

RCC_FLAG输入参数

RCC_FLAG_HSIRDY HSI晶振就绪

RCC_FLAG_HSERDY HSE晶振就绪

RCC_FLAG_PLLRDY PLL就绪

RCC_FLAG_LSERDY LSI晶振就绪

RCC_FLAG_LSIRDY LSE晶振就绪

RCC_FLAG_PINRST 管脚复位

RCC_FLAG_PORRST POR/PDR复位

RCC_FLAG_SFTRST 软件复位

RCC_FLAG_IWDGRST IWDG复位

RCC_FLAG_WWDGRST WWDG复位

RCC_FLAG_LPWRRST 低功耗复位

返回值

SET RESET

void RCC_SYSCLKConfig(u32 RCC_SYSCLKSource) 设置系统时钟(SYSCLK)

RCC_SYSCLKSource输入参数    

RCC_SYSCLKSource_HSI 选择HSI作为系统时钟

RCC_SYSCLKSource_HSE 选择HSE作为系统时钟

RCC_SYSCLKSource_PLLCLK 选择PLL作为系统时钟

u8 RCC_GetSYSCLKSource(void)        返回用作系统时钟的时钟源

返回值

0x00:HSI作为系统时钟

0x04:HSE作为系统时钟

0x08:PLL作为系统时钟


例程    HSE作为PLL,PLL作为SYSCLK

RCC_DeInit();

RCC_HSEConfig(RCC_HSE_ON);

if (RCC_WaitForHSEStartUp() == SUCCESS) {

RCC_HCLKConfig(RCC_SYSCLK_Div1);

RCC_PCLK2Config(RCC_HCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2);

RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

RCC_PLLCmd(ENABLE);

while( RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET ) {

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

while( RCC_GetSYSCLKSource() != 0x08 );

}

}

关键字:STM32F103  时钟  配置 引用地址:STM32F103 时钟配置

上一篇:STM32F103 UART通信讲解
下一篇:STM32 串口调试UART1,调试笔记1

推荐阅读

4年前,一句“智能家居元年正式开启”的口号,打开了智能家居的风口,众多企业纷纷入场,智能门锁成为企业抢占智能家居的入口。  智能门锁行业人士曾指出,中国目前约有6亿扇大门,一个锁寿命10年左右,每年有超过5000万的锁需更换,比手机行业前景还要广阔。  我国民用智能门锁产业真正进入市场已近20年。截至2018年,智能门锁行业步入市场井喷期,年...
在企业数字化转型的过程中,技术的创新总也赶不上客户业务需求的变化,两者中间似乎总有一道填不平的鸿沟,这也是让客户感到郁闷的地方。IDC的研究显示,今天的企业正在向数字化转型的深水区迈进,越来越多的企业关键工作任务负载将逐渐迁移至云端。IBM z15的推出能够帮助客户掀开数字化重塑的“第二篇章”吗?答案是肯定的。IBM z15通过提供一个超安全...
新浪数码讯 10月9日上午消息,两年前,Apple Watch Series 4中加入了心电图功能(ECG)功能,苹果公司需要获得美国食品药品监督管理局(FDA)的批准才能将之推向市场;但是今年,Apple Watch Series 6中的血氧监测却并不需要,其中最重要原因是,苹果并没有将它定义为医疗器械。正如外媒The Verge所谈到的那样,脉搏血氧仪(也就是Apple Watch中...
简介PROCENTEC等行业专家的数据显示,采用基于RS-485现场总线技术(PROFIBUS®)的应用在持续增长,工业以太网(PROFINET)应用也在快速增长。2018年,全球共安装6100万个PROFIBUS现场总线节点,PROFIBUS过程自动化(PA)设备同比增长7%。PROFINET安装基数为2600万个节点,仅2018年安装的器件数量就达到5100万。随着RS-485现场总线采用率的稳定增长,同时工业4.0...

史海拾趣

问答坊 | AI 解惑

我要转行了

我在这里干电子工程师一个月开的太少了,想要去转销售。大家说能行不,说是转销售了,但是我在干销售时不会放下我的电子专业,到时买楼买车之后在转回来。不知道能不能在转回电子工程师了。想听听大家的见意。…

查看全部问答∨

matalb2009b支持全系列DSP

matlab2009b进行了革命性的升级,以后开发DSP 只要会使用matlab就完全可以了,效率甚至超过了 手写代码的程度…

查看全部问答∨

2440+WINCE5.0摄像头拍第四张照时出现异常

大家好,用立宇泰的摄像头应用程序和驱动程序平台是WINCE5。0,在拍照时拍到第四张时出现异常,DNW窗口出现这样的信息 RaiseException: Thread=839e05e8 Proc=81c76ac0 \'Cameratest.exe\' AKY=00000401 PC=03fb44d8(coredll.dll+0x000444d8) RA= ...…

查看全部问答∨

请教关于FX2NPLC与触摸屏连接的问题

各位好:我现在在用FX2N-16MR的PLC与触摸屏连接,采用SC-09串口编程线连接。我想问一下我使用串口编程线SC-09 是不是直接将圆头插入PLC的编程口,将另一端插入主机的串口就行啊,也就是说他们之间是不是就是串口通信啊? 再有,如果有人使用组态王 ...…

查看全部问答∨

帮忙解决vhdl:quartus7.2 在运行if..genarate遇到的问题

本人在quartus7.2运行如下vhdl代码: library ieee; use ieee.std_logic_1164.all; entity shift is         generic (len:integer);   port(a,clk:in std_logic;          &n ...…

查看全部问答∨

EVC4.0_sp4能否使用ADOCE数据访问技术访问SQLSeverCE?

各位大侠,帮帮忙,我用的是ce4.2,使用EVC4.0_sp4开发应用程序,问能否使用ADOCE数据访问技术,为什么有的人说可以,但是张冬全《windows ce实用开发技术》的书中说windows ce 4.0以后不能在使用ADOCE技术。到底能用么?…

查看全部问答∨

交换源代码

交换源代码(VC),我现在有鼠标键盘驱动HOOK(不需要重启即安装)源代码及测试代码。HOOK过滤驱动,键盘鼠标能收能发,驱动,测试都有源码,HOOK过滤驱动不用重启,就能工作,现想交换普通鼠标键盘驱动源代码及测试代码。有意者直接联系QQ22519152…

查看全部问答∨

IAR for AVR 数据类型

IAR学习笔记,大家一起分享(连载)!IAR for AVR 学习笔记--数据类型数据类型(编译器支持 ISO/ANSI C 基本数据类型和一些附加数据类型)1.1. 整型数据bool 数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含stdbool.h, bool数据类 ...…

查看全部问答∨

嘿嘿,俺成为USB技术小斑竹

即将发布一些  USB具体应用。 实例形式,产品级。这个月,主要涉及 STM32  .…

查看全部问答∨

TQ2440 WINCE6.0 ADC驱动无法加载

刚开始学嵌入式,最近需要使用AD转换,可是TQ2440开发板没有提供WINCE6.0的ADC驱动,无奈找了很久,现在是在天嵌论坛找的一个WINCE5.0下开发的ADCDrv(http://bbs.embedsky.net/viewthread.php?tid=1140&extra=page%3D2)包含ADCDrv.cpp、ADCDrv.h ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved