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 UART通信讲解
下一篇:STM32 串口调试UART1,调试笔记1
推荐阅读
史海拾趣
进入千禧年代,C&K因其卓越的市场表现和技术实力被ITT Industries收购。虽然成为了ITT的开关部门,但C&K仍然保留了自己的品牌名称。这一举措既保证了C&K能够继续享有ITT的资源支持,又使得C&K能够保持其独特的品牌文化和市场定位。
随着技术的不断成熟和产品线的丰富,DAQ Electronics LLC公司开始积极拓展市场。公司通过与科研机构、高校以及企业建立合作关系,将数据采集技术应用于更多领域。在科学研究领域,DAQ Electronics LLC公司的数据采集设备为实验数据的准确获取提供了有力保障;在工业生产领域,其设备则帮助企业实现了对生产过程的实时监控和数据分析。
随着技术的不断成熟和产品线的丰富,DAQ Electronics LLC公司开始积极拓展市场。公司通过与科研机构、高校以及企业建立合作关系,将数据采集技术应用于更多领域。在科学研究领域,DAQ Electronics LLC公司的数据采集设备为实验数据的准确获取提供了有力保障;在工业生产领域,其设备则帮助企业实现了对生产过程的实时监控和数据分析。
在竞争激烈的电子行业中,DURABLE公司深知单打独斗难以取得长远发展。因此,公司积极寻求与其他行业的跨界合作机会。通过与汽车制造商、医疗设备制造商等行业的合作,DURABLE成功将自身的技术优势应用于更多领域的产品中。这种跨界合作模式不仅拓宽了公司的业务领域和收入来源,还为公司带来了更多的创新灵感和市场机遇。通过与其他行业的合作,DURABLE实现了资源共享和优势互补,实现了共赢发展。
Deltron公司成立于XXXX年,初期以生产基础电子元器件为主。创始人XXX凭借其对电子技术的深刻理解和对市场趋势的敏锐洞察,带领团队进行了一系列技术创新。通过引进先进的生产设备和研发技术,Deltron成功开发出了一系列具有竞争力的产品,逐渐在电子行业中崭露头角。
Deltron公司成立于XXXX年,初期以生产基础电子元器件为主。创始人XXX凭借其对电子技术的深刻理解和对市场趋势的敏锐洞察,带领团队进行了一系列技术创新。通过引进先进的生产设备和研发技术,Deltron成功开发出了一系列具有竞争力的产品,逐渐在电子行业中崭露头角。
大家好,用立宇泰的摄像头应用程序和驱动程序平台是WINCE5。0,在拍照时拍到第四张时出现异常,DNW窗口出现这样的信息 RaiseException: Thread=839e05e8 Proc=81c76ac0 \'Cameratest.exe\' AKY=00000401 PC=03fb44d8(coredll.dll+0x000444d8) RA= ...… 查看全部问答∨ |
各位好:我现在在用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技术。到底能用么?… 查看全部问答∨ |
IAR学习笔记,大家一起分享(连载)!IAR for AVR 学习笔记--数据类型数据类型(编译器支持 ISO/ANSI C 基本数据类型和一些附加数据类型)1.1. 整型数据bool 数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含stdbool.h, bool数据类 ...… 查看全部问答∨ |
|
刚开始学嵌入式,最近需要使用AD转换,可是TQ2440开发板没有提供WINCE6.0的ADC驱动,无奈找了很久,现在是在天嵌论坛找的一个WINCE5.0下开发的ADCDrv(http://bbs.embedsky.net/viewthread.php?tid=1140&extra=page%3D2)包含ADCDrv.cpp、ADCDrv.h ...… 查看全部问答∨ |