【学习记录】STM32利用定时器中断实现定时闪烁指示灯

这篇具有很好参考价值的文章主要介绍了【学习记录】STM32利用定时器中断实现定时闪烁指示灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

任务:定时闪烁指示灯

任务目标:掌握 CubeMX 软件配置定时器实现定时功能的方法。

任务内容:控制开发板上的指示灯LED每隔1s闪烁。

任务实现:

使用的STM32芯片是STM32F407ZET6

第一步:设置高速时钟,设置LED

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

第二步:配置TIM10时钟为100MHz,故可以设置预分频系数PSC为9999,自动重载值系数ARR为9999,这样定时时间刚好为1s。

注意: 预分频系数 PSC 和自动重载值 ARR 的取值,以不超过它们的计数范围为准TIMx_PSC为16位寄存器,PSC的最大值为65 535。ARR 的值由定时器的位数决定:对于16位定时器,ARR的最大值为 65 535;对于32位定时器,ARR 的最大值为232-1=4 294 967 295。

查阅STM32F407手册知道,TIM10挂在APB2总线上。

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

第三步:切换到NVIC标签页,使能TIM10的全局中断。

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

注意:定时器 10的全局中断和定时器 1 的更新中断共享同一个中断通道。

第四步:不设置中断优先级,而是使用默认的中断优先级。

第五步:生成代码。

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

配置代码:

生成MDK工程后,进行应用程序的编写。CubeMX 软件将自动生成定时器10的句柄htim10,以及初始化函数MX_TIM10_Init()。完成定时器10的初始化之后,调用定时器中断方式启动函数HAL_TIM_Base_Start_IT()使能定时器10的更新中断并启动定时器运行。在主程序的 while(1)循环中不进行任何操作,指示灯的闪烁任务由更新中断回调函数完成。

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

以中断方式使能定时器10的更新中断并启动定时器运行。

定时器中断控制led灯闪烁,定时器,STM32,中断,stm32,单片机,学习

用来清除更新中断标志,避免定时器一启动就进入更新中断

/* USER CODE BEGIN 2 */
	// 清除更新中断标志,避免定时器一启动就进人更新中断
	__HAL_TIM_CLEAR_IT(&htim10,TIM_IT_UPDATE);
	HAL_TIM_Base_Start_IT(&htim10); 	//在中断方式下启动定时器 10

  /* USER CODE END 2 */

中断回调:

/* USER CODE BEGIN 4 */

/**

  * @brief  Period elapsed callback in non-blocking mode

  * @param  htim TIM handle

  * @retval None

  */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{

  /* Prevent unused argument(s) compilation warning */

  if(htim -> Instance ==TIM10) //判断发生更新中断的定时器

       {

              HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_9);

       }

  /* NOTE : This function should not be modified, when the callback is needed,

            the HAL_TIM_PeriodElapsedCallback could be implemented in the user file

   */

}



/* USER CODE END 4 */

运行结果

将程序编译链接,生成可执行代码,通过 ST-Link 仿真器下载到开发板上。可以观察到: 指示灯LED的状态每隔 1s 翻转一次。文章来源地址https://www.toymoban.com/news/detail-755254.html

到了这里,关于【学习记录】STM32利用定时器中断实现定时闪烁指示灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)

    ​  本次课程采用单片机型号为STM32F103C8T6。 ​  课程链接:江科大自化协 STM32入门教程   往期笔记链接:   STM32学习笔记(一)丨建立工程丨GPIO 通用输入输出   STM32学习笔记(二)丨STM32程序调试丨OLED的使用   STM32学习笔记(三)丨中断系统丨EXTI外部中断

    2023年04月13日
    浏览(59)
  • STM32 F103C8T6学习笔记4:时钟树、滴答计时器、定时器定时中断

    今日理解一下STM32F103 C8T6的时钟与时钟系统、滴答计时器、定时器计时中断的配置,文章提供原理,代码,测试工程下载。 目录 时钟树与时钟系统: 滴答计时器: 定时器计时中断: 测试结果: 测试工程下载: 该系统介绍在 STM32F10x-中文参考手册 P56页开始 微控制器的时钟系

    2024年02月13日
    浏览(43)
  • STM-32:TIM定时中断—定时器定时中断/定时器外部时钟

    定时器可以对输入的时钟进行计数,并在达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等

    2024年02月09日
    浏览(54)
  • STM32——定时器——定时中断

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 本节先只讲解定时器的定时中断,内外中断源选择。 TIM(Timer)定时器 定时器可以 对输入的时钟进行计数 ,并在计数值达到设定值时触发中断。 16位计数器、预分频器、自动重装寄存器的时基单元 ,

    2024年04月10日
    浏览(45)
  • STM32定时器-定时器中断功能详解

    STM32的众多定时器中我们使用最多的是高级定时器和通用定时器,而高级定时器一般也是用作通用定时器的功能,下面我们就以通用定时器为例进行讲解,其功能和特点包括: 通用与基本定时器(2~7)位于低速的APB1总线上 高级定时器(1、8)位于高速的APB2总线上 自动装载计

    2024年02月08日
    浏览(50)
  • stm32 定时器部分(定时中断)

    一.定时中断(概念部分) 定时中断主要包含两种中断一种是更新中断还有一种是输入捕获中断 更新中断 :更新中断通常用于定时器的基本定时功能。当定时器计数器溢出并重新从零开始计数时,会触发更新中断。你可以配置定时器的计数周期和预分频器来控制定时器的计时

    2024年03月15日
    浏览(56)
  • 定时器详解 -- 定时器中断、PWM输出 --stm32

    STM32F103系列芯片拥有多种定时器,包括基本定时器、通用定时器和高级定时器,每种定时器都具有一些特定的功能。 向上计数:计数器从0计数到自动重装载值(ARR),然后重新从0开始计数并且产生一个计数器溢出事件。 向下计数:计数器从自动重装载值(ARR)开始向下计数

    2024年02月11日
    浏览(59)
  • 【STM32笔记】STM32的定时器开发基础(二)(基于STM32CubeMX实现定时器中断)

      传统STM32外部中断 的设计步骤:  (1)将GPIO初始化为输入端口。  (2)配置相关I/O引脚与中断线的映射关系。  (3)设置该I/O引脚对印的中断触发条件。  (4)配置NVIC,并使能中断。  (5)编写中断服务函数。   基于STM32CubeMX的外部中断 设计步骤  (1)在STM3

    2024年02月20日
    浏览(58)
  • 定时器中断实验(stm32)

    计算公式: Tout= ((arr+1)*(psc+1))/Tclk 其中: Tclk:TIM3 的输入时钟频率(单位为 Mhz)。 Tout:TIM3 溢出时间(单位为 us) Tout= ((4999+1)*( 7199+1))/72=500000us=500ms

    2024年02月13日
    浏览(47)
  • STM32基本定时器中断

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 定时器有什么用?精准延时,PWM,做一个时钟:年月日,时分秒。时钟最基本的就是1s怎么来? 提示:以下是本篇文章正文内容,下面案例可供参考 1.1如何实

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包