历史上的今天

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

正在发生

2020年08月25日 | STM32CubeMX时钟配置详解

发布者:CyborgDreamer 来源: eefocus关键字:STM32CubeMX  时钟配置  总线 手机看文章 扫描二维码
随时随地手机看文章

软件:
(1)STM32CubeMX
(2)SW4STM32
实验平台:STM32F407VET6开发板


使用STM32CubeMX的一个好处就是图形化配置,在时钟配置方面,主要了解清楚高级外设总线(APB1、APB2)控制哪些外设。
(0)先配置好PA6、PA7(控制LED灯),好观察实验现象
这里写图片描述
(1)首先配置RCC(复位和时钟控制),选择外部高速始终,如下图
这里写图片描述

(2)为了测试不同APB的时钟频率效果,在此选择了TIM1和TIM2,按下图配置
这里写图片描述

(3)为什么选择以上两个定时器作为例子?参考STM32F4XX中文参考手册,找到RCC相关内容,如图
这里写图片描述
这里写图片描述
可知TIM1 在APB2,TIM2 在APB1

(4)进入时钟配置,我的STM32F407开发板外部晶振是8MHz的,在Input freequency 输入8,在HCLK 那里会提示最大频率168MHz,输入168,然后自动寻求配置,注意第一次配置出来的还是内部时钟HSI 的,要选择为HSE ,配置好后如下图
这里写图片描述
顺便提一下,STM32F103的开发板也差不多的,只不过F1的最高时钟频率是72MHz。
(5)配置好后时钟后可以看到APB1 定时器(如TIM2)频率为84MHz,APB2 定时器(如TIM1)频率为168MHz

(6)设置NVIC,TIM1是高级定时器,选择更新中断,TIM2是通用定时器
这里写图片描述
这里写图片描述
除了定时器,我自己还设置了两个串口中断,可以不用理会

(7)设置定时器
这里写图片描述
这里写图片描述
上面两个定时器设置实现的都是定时1s进入中断处理。


以TIM1为例,APB2时钟频率168MHz=168,000,000Hz,选取预分频系数(Prescaler)(16位存储,预分频系数最大65535)为16799,则定时器的时钟频率为168,000,000 / 16800 = 10000 Hz,频率为1万赫兹,选取计数周期(Counter Period,16位存储)为9999, 所以定时周期1s,同理TIM2也是同样计算,如果APB的时钟频率改变,一样安装上面的方法进行设置。

(8)生成SW4STM32工程,打开,在main函数里面while前启动定时器,如下代码

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  HAL_TIM_Base_Start_IT(&htim1);/启动定时器
  HAL_TIM_Base_Start_IT(&htim2);
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */12345678910111213

(9)编写定时器中断

/* USER CODE BEGIN 4 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance == TIM2)	// 判断哪个定时器中断
	{
		HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_6);	// 翻转灯
	}
	if(htim->Instance == TIM1)	// 判断哪个定时器中断
	{
		HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_7);	// 翻转灯
	}

}

/* USER CODE END 4 */12345678910111213141516

最后烧写到开发板实现预定效果,对定时器中断的详细视频介绍可以参考博主制作的相关视频,一个是在proteus仿真实现的,另一个是结合freertos实现的:https://www.bilibili.com/video/av63392182, https://www.bilibili.com/video/av63560586

关键字:STM32CubeMX  时钟配置  总线 引用地址:STM32CubeMX时钟配置详解

上一篇:STM32f103时钟系统简介
下一篇:Stm32时钟分析

推荐阅读

随着人们生活水平的不断提高,对产品服务的要求也发生了变化,消费端开始升级并带来新的挑战和机遇。而服务机器人似乎为新的时代而生,逐步开始进入社会,进入家庭,服务于平民大众。在2018世界机器人大会上,北京康力优蓝机器人科技有限公司创始人兼首席执行官刘雪楠认为,服务机器人最大的市场是面向家庭的服务机器人,如果从商业价值的角度来讲,最大的...
特拉华大学的研究人员已经确定氨是工程燃料电池的一种来源,它可以为汽车、卡车和公共汽车提供廉价而强大的燃料,并减少碳排放。燃料电池是一种无污染的能源,它能将化学能转化为高效、零排放的电能。特拉华大学的研究人员正在研究使燃料电池更便宜、更强大的技术,以便燃料电池汽车将来可以成为所有人的可行选择。传统的燃料电池研究涉及氢燃料电池,但特...
ARM签署了一项为期三年的协议,允许美国国防高级研究计划局(DARPA)的研究人员使用其所有的知识产权和工具。ARM交易特别针对DARPA电子复苏计划(ERI),该计划于2017年成立,旨在保护美国在电子领域的能力。ERI项目的合作伙伴必须确保ERI的20多个DARPA资助项目的利益惠及美国商业和国防项目。这笔交易使DARPA员工能够快速、轻松地利用ARM的IP、工具和支持...
无论是核电站、医院的病人监控设备还是自动驾驶汽车,将物理程序与计算机和过程控制集成在一起,即信息物理系统(CPS)随处可见。不过,CPS的广泛应用也使其成为黑客攻击的主要目标,例如,只简单改变一个传感器的值就能够造成严重破坏。由于容易受到恶意攻击,因此此类系统需要能够在传感器被破坏的情况下,仍然能够提供安全且有效的过程控制。控制系统是...

史海拾趣

问答坊 | AI 解惑

常用晶体管、三极管资料大全

常用晶体管、三极管资料大全…

查看全部问答∨

有没有关于电力系统方面的资料啊

像状态估计等等的程序各位同仁帮帮忙吧!感激不尽…

查看全部问答∨

TTL反相器中怎么断定T4是放大状态的?

注意,参考图为去掉上传图中的RL输出电阻. 当输入为低电平时T5截止容易明白,为什么T4处在放大状态呢?怎么通过计算知道?…

查看全部问答∨

电子设计大赛有没有世界级别的?

本帖最后由 paulhyde 于 2014-9-15 09:38 编辑 世界级别的电子设计大赛,都有哪些呢? 类似于奥斯卡那种的?  …

查看全部问答∨

摄像头分辨调整到800*480

我本来就有一段程序,但,他只用有从摄像头中取到320*240的图像,我现在 要做800*480,有如下,代码,据说可以实现,哪位,知道,告诉我下,这段代码,放在程序的哪里有,有做这方面我想会知道。 HRESULT hr; IBaseFilter *pCap; CComPtr<ICap ...…

查看全部问答∨

求助:关于c8051f020的定时器中断的问题,急急急!!!!!!!!!!!

我的一个简单的程序,想利用定时器0中断来产生方波,可是调试的时候发现中断标志置位了,也允许中断了,但是就是不进入中断服务程序,请各位大侠帮我看看吧,谢谢!!!! //主程序 void main() {       WDTCN=0xDE;  ...…

查看全部问答∨

如何查看GPIO寄存器

我用的是XSCal270+winCE4.2,最近自定义了中断,GPIO的52口,上升沿触发中断,pin已经设置了in中断。自认为过程没有错,测试程序中InterruptInitialize也没报错,但是就是等不来中断事件。硬件给了上升沿也没反应,不知道哪位大侠知道怎么实时看一 ...…

查看全部问答∨

EVC应用程序所用的文件

我需要在程序中引用一些bmp,txt 文件,注意这些文件并不是程序的资源,而是程序的外部文件.        现在每次调试程序都需要把这些文件复制到模拟器对应目录下面,比较麻烦,有没有办法在编译器下设置一下,让编译器可以自动把这些 ...…

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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