历史上的今天
返回首页

历史上的今天

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

正在发生

2021年11月08日 | stm32库函数记录

2021-11-08 来源:eefocus

一、系统初始化函数执行完毕各时钟的状态

二、三类(总线上的)时钟函数


2.1、外设时钟使能函数

void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);

 

 

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewStat e);

 


void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewStat e);


此3 个时钟使能函数也是 STM32 的 3 条总线。


STM32 外设都是挂接在 AHB 和 APB 总线上。比如 GPIO 外设它是挂接在 APB2 总线上。


外设时钟使能函数有两个形参,第一个是你所使用的外 设所挂接的时钟 ,第 二个是选择你用的外设时 钟使能还是失能 。

 

如我们要使能端口 GPIOB,那么第 一个传递的参数是:RCC_APB2Periph_GPIOB 宏。


第二个传递的参数是 ENABLE 使能。

从第一个参数名来看也非常好理解

RCC 表示复位和时钟控制器,

APB2 表示 GPIOB 是挂接在 APB2 总线上,

Periph 表示外设,后面的 GPIOB 表示我们使能的 是 GPIOB 端口。第二个参数 ENABLE 表示使能。


2.1.2、其他时钟源

void RCC_HSICmd(FunctionalState NewState);  // 内部高速时钟

void RCC_LSICmd(FunctionalState NewState);  // 内部低速时钟

void RCC_PLLCmd(FunctionalState NewState);  // 主时钟

void RCC_RTCCLKCmd(FunctionalState NewState);//实时时钟

 

这些函数都是用来使能相应的时钟源,比如我们要使能 PLL 时钟,那么就调 用 RCC_PLLCmd 函数,函数有一个形参,和前面外设时钟的第二个参数一样,如 果为 ENABLE 表示使能,DISABLE 表示失能。


2.2、时钟源和倍频因子配置函数

设置 HSE 作为系统时钟源,那么调用的函数就是

 

RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);//配置时钟源为 HSE

APB1 的时钟频率是 HCLK 的 2 分频


RCC_PCLK1Config(RCC_HCLK_Div2);//设置低速 APB1 时钟(PCLK1)


2.3、外设复位函数

void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewStat e); 

void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewStat e);

在 STM32F10x 高容量的芯片中没有 RCC_AHBPeriphResetCmd 函数。这类函数 与外设时钟使能函数用法一样,只不过外设时钟使能函数是用于使能 外设时钟,而这类函数是用于外设复位,从函数名也可以区分出来。


三、配置函数

void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul);

第一个参数是 PLL 时钟源选择我们例程中采用的都是 HSE 作为 PLL 的时 钟源,可以设置为 RCC_PLLSource_HSE_Div1/RCC_PLLSource_HSE_Div2。

第二个 参数就是倍频因子值(RCC_PLLMul_2~RCC_PLLMul_16)。

未修改系统时钟时,系统初始化后默认时钟为72M

RCC_HSE_Config(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);

让系统时钟为 36M,只需要将参数值修改

RCC_HSE_Config(RCC_PLLSource_HSE_Div2,RCC_PLLMul_9);

此时修改的是 div 这个参数值,此参数用来对 HSE 时钟分频系数设置,从时 钟树可知,HSE 可以直接流入到 PLLSRC,还可以经过 2 分频后给 PLLSRC。它的 取值为 RCC_PLLSource_HSE_Div1 或 RCC_PLLSource_HSE_Div2。

推荐阅读

史海拾趣

Belkin公司的发展小趣事

贝尔金在创新方面的努力得到了行业的广泛认可。例如,在2015年,贝尔金获得了CES创新大奖,这充分证明了其在电子产品设计和技术创新方面的实力。此外,贝尔金还多次获得其他行业奖项和荣誉,这些成绩不仅提升了贝尔金的品牌形象,也为其未来的发展奠定了坚实的基础。

以上五个故事从不同的角度展示了Belkin公司在电子行业中的发展历程和成就。从创立初期的艰辛到逐步成长壮大,再到全球化布局和创新发展,贝尔金凭借坚定的信念和不懈的努力,成为了电子行业的佼佼者。

Cooper Tools(Eaton)公司的发展小趣事

随着电子行业的快速发展,贝尔金也紧跟时代步伐,不断进行技术革新和产品线拓展。2002年,贝尔金为苹果Dock连接器研发了一系列产品,包括汽车套件、电池组、读卡器等,这标志着它与苹果公司的深度合作开始。此后,贝尔金逐渐成为苹果官方合作配件制造商,其产品在苹果用户中享有很高的声誉。

倍思特(BEST)公司的发展小趣事

贝尔金公司的业务始于1983年的美国加州霍桑。当时,它仅仅是一个在车库里运营的小企业,销售额仅为十八万美元。然而,这个看似不起眼的起点却孕育了一个未来的行业巨头。从最初的产品设计和生产,到逐步进入市场并获得消费者的认可,贝尔金凭借对电子产品连接技术的深入理解和创新,逐步在行业中崭露头角。

Ericsson Power Modules公司的发展小趣事

在创立初期,Ericsson Power Modules就展现出了强大的技术创新能力。公司团队通过深入研究电源技术、电路板应用和系统知识,成功开发出了一系列高性能、高效率的电源模块产品。其中,DC-DC转换器、中级和先进总线转换器、POL稳压器等产品因其卓越的性能和稳定性,在市场上赢得了广泛好评。这些技术突破和产品创新为Ericsson Power Modules的后续发展奠定了坚实的基础。

广东华裕(GDHY)公司的发展小趣事

在创立初期,Ericsson Power Modules就展现出了强大的技术创新能力。公司团队通过深入研究电源技术、电路板应用和系统知识,成功开发出了一系列高性能、高效率的电源模块产品。其中,DC-DC转换器、中级和先进总线转换器、POL稳压器等产品因其卓越的性能和稳定性,在市场上赢得了广泛好评。这些技术突破和产品创新为Ericsson Power Modules的后续发展奠定了坚实的基础。

AEMC Instruments公司的发展小趣事

AEMC Instruments公司始终注重产品品质和质量管理。公司建立了完善的质量管理体系,并通过了多项国际认证,如ISO 9001质量管理体系认证等。这些认证不仅证明了公司在品质管理方面的实力,也提高了客户对产品的信任度。同时,公司还加强了对供应商和生产过程的管理,确保从原材料采购到产品生产的每一个环节都符合国际标准和客户要求。

问答坊 | AI 解惑

压缩卡及硬盘录像机常见故障1

压缩卡及硬盘录像机常见故障 在使用PC式的硬盘录像机的过程中,难免会遇到许多诸如死机等突发故障,对于平时工作正常的较新机子而言,其中大多数死机都是软件停止了响应造成的,只要强制关闭了这些停止响应的软件,硬盘录像机即可恢复正常工作,方 ...…

查看全部问答>

【视频分享】赛灵思工程师详解7系列 FPGA

一个全新的FPGA如何确定其功能如何呢?下面看赛灵思测试工程师详解7系列 FPGA:$(\'swf_ziw\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'sr ...…

查看全部问答>

【求】ddk 2600.1106

请问谁有ddk 2600.1106这个版本的ddk,菜鸟初学乍到,往大家多多帮助,谢谢!…

查看全部问答>

PC机与PLC通迅问题

请问,用串口调试助手和三菱Q系列plc通迅时,十六进制的帧指令格式是什么  …

查看全部问答>

关于vxworks的测试

小弟要做vxworks下各个接口的测试,比如串口的传输速率等,要有个定量的结果出来,现在还不知道从哪里下手,希望有这方面经验的人指点一下。…

查看全部问答>

MEGA16-NRF905无线评估

超值的NRF905综合开发板JASK3000 JASK3000开发系统     集成当前433频段最主流无线收IC :NRF905无线收发器,相信掌握这NRF905无线收发器原理及应用对大家在无线应用开发领域奠定扎实基础.我公司提供全面技术支持,保证大家快速入门和应用 ...…

查看全部问答>

动态嵌入式DLL木马病毒的发现及清除

随着MS的操作系统从Win98过渡到Winnt系统(包括2k/xp),MS的任务管理器也一下子脱胎换骨,变得火眼金睛起来(在WINNT下传统木马再也无法隐藏自己的进程),这使得以前在win98下靠将进程注册为系统服务就能够从任务管理器中隐形的木马面临前所未有 ...…

查看全部问答>

世界500强公司急聘嵌入式开发工程师

-精C++,嵌入式编程,Unix, MFC, Vxworks -工作经验2年以上 -学历要求本科以上 -英语听说读写熟练 -本科学历或以上, 计算机相关专业; -3年以上Linux 软件开发经验; -精通 C++, UML and XML -懂网络编程者优先; -英语熟练,懂日语者优先 ...…

查看全部问答>

为什么现在的微处理器都很少有扩展总线了?

                                 找了好几款ARM都没有总线的扩展功能,比如我要在ARM外再扩展存储器或者扩展其他专用接口芯片都很难啊?…

查看全部问答>

串口中断问题

各位老师:这个程序为什么就是执行不到while里呢?(就是这条GPIO_Write(GPIOD, 0x0700);)单步(F11)的时候可以的,但F10执行职能到NVIC_Configuration(); 到这里就执行不下去了,到不了while里。发送数据4或5都得到现象的(中断是进去了的),为 ...…

查看全部问答>