历史上的今天
返回首页

历史上的今天

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

正在发生

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

2019-10-11 来源:eefocus

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 );

}

}

推荐阅读

史海拾趣

ENOCEAN公司的发展小趣事

2010年,EnOcean公司成功成为国际标准组织ISO/IEC的成员。这一里程碑事件标志着EnOcean的技术和产品在全球范围内得到了广泛认可。通过参与制定无线传感网络的国际标准,EnOcean进一步巩固了其在行业内的领先地位,为推广其无线无源传输技术奠定了坚实基础。

General Instrument公司的发展小趣事
检查线路是否存在异常干扰信号、断路、对地漏电等问题,并进行修复。
GSR Technology Ltd公司的发展小趣事

在快速发展的同时,GSR Technology Ltd始终关注可持续发展和社会责任。公司积极推动绿色生产,采用环保材料和工艺,减少对环境的影响。同时,公司积极参与公益事业,为贫困地区提供技术支持和教育援助。此外,公司还加强知识产权保护,维护行业健康发展。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。

请注意,以上故事均为虚构内容,旨在展示一个类似公司在电子行业中的可能发展路径。实际情况可能因公司具体策略、市场环境等因素而有所不同。

Cellergy公司的发展小趣事

在电子行业的快速发展中,Cellergy公司以一项创新技术打破了行业内的常规。该公司成功研发出了一种新型电容器,其性能远超市场上同类产品。这一技术突破不仅为Cellergy公司赢得了大量订单,还使其在电子行业中的地位得到了显著提升。随着技术的不断完善和市场的不断拓展,Cellergy公司逐渐成为了电容器领域的佼佼者。

Geo Semiconductor Inc公司的发展小趣事
通过智能化控制策略,实现生产流程的优化调度和资源配置,提高整体生产效率。
Globaltech Semiconductor Co Ltd公司的发展小趣事

随着公司业务的不断发展壮大,Globaltech开始着手进行全球化布局。公司在全球多个地区设立了研发中心和销售中心,以便更好地服务全球客户。同时,公司还注重可持续发展和社会责任,积极参与公益事业和环保活动。这些举措不仅提升了公司的社会形象和品牌价值,也为公司的长期发展奠定了坚实的基础。

以上五个故事展示了Globaltech Semiconductor Co., Ltd.在电子行业中的发展历程和关键里程碑。通过技术创新、市场拓展、研发实力提升、战略调整和全球化布局等措施,公司不断壮大自身实力,并在全球半导体行业中占据了一席之地。

问答坊 | AI 解惑

麻烦推荐个运放,能测出1mV左右电压,失真比较小~~

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata   麻烦推荐个运放,能测出1mV左右电压,失真比较小 用OP07可以不? …

查看全部问答>

KEIL下LPC1114代码运行问题

用keil编码1114的i2c,我在设置了编译优化选项之后出现了巨大的问题。索性,在取消掉所有的优化选项后i2c通信已经正常。   可惜结果仍然不正确,我就跟代码。这时候才发现一个无法理解的问题。我在funcA()里调用funcB()时传入一个静态myVar ...…

查看全部问答>

疑问

   大家好,我现在跟同学一起做一个有关嵌入式的东西,就是想让平台上的图像在触摸屏幕上显示出来,用软件来实现 希望大家能多多指导!!…

查看全部问答>

有关CDMA模块的AT指令问题

如题,公司用的是ANTDATA公司出的DTGS-800模块,虽然也带有文档说明,但我觉得不够详细,所以特来发帖提问,希望大家踊跃发言,问题如下: 1、读取短信的时候,怎样才能不改变短信的状态呢?例如,执行了以下AT命令 AT+UGSM=1 返回OK(DTGS-800支 ...…

查看全部问答>

求助:PWM输出8.2KHZ1:1的方波,为什么在4.3K有个的很强频率分量

设置如下: unsigned short pwmizhouqi=256;   LPC_TMR16B1->TCR = 0;      LPC_SYSCON->SYSAHBCLKCTRL |= (1PIO1_9 = 0X01;   LPC_TMR16B1->MR0 = pwmizhouqi/2;       LPC ...…

查看全部问答>

求教

MSP430f2XX  系列单片机能不能用并口JTAG下载程序?一定要用USB  二线制的吗?谢谢…

查看全部问答>

LaunchPad调试nrf24l01--续

原帖不能编辑了,就新开一帖在这里,望斑竹谅解   目前为止,基于launchpad和nrf24l01的单向收发已经实现,程序在下面放出,还有很多要改进的,仅供参考。欢迎高手拍砖。   学习经历: 1.收到板子后查了下资料,发现很丰富啊,于是 ...…

查看全部问答>

单片机编程

http://wenku.baidu.com/view/eeb3310d6c85ec3a87c2c586.html…

查看全部问答>

MPLAB IDE和PICC编译问题。

我用的是MPLAB ICE和PICC编译PIC16F722,之前编译什么的都没问题,重装系统后再安装后就再也编译不成功了,提示No installed compiler driver supports device 16F722。 编译PIC16F505没有问题。每次点Project-Select Language Toolsuite后HI-TECH ...…

查看全部问答>