当前位置: 首页 > 网络应用技术

STM32Cubemx学习笔记(5) - 基础计时器接口使用

时间:2023-03-05 17:35:45 网络应用技术

  在STM32F1系列中,除了连接的产品外,还有一个计时器,该计时器分为基本计时器,通用计时器和高级计时器。基本计时器和16位计时器只能计数,只有时间,没有时间,没有外部IO。通用计时器是一个16位计时器,可以上/向下计数。它可以定时,输出比较,并可以输入和捕获。每个计时器都有四个外部iOS.Advanced Timer是一个16位计时器,可以用/向下用用光。它可以定时,输出可以输出,并且可以输入以捕获。还有三个相机互补性输出信号。每个计时器都有8个外部iOS。

  1.打开STM32Cubemx软件,然后单击“新项目”

  2.选择MCU和安装

  3.配置Clock RCC设置,选择HSE(外部高速时钟)为Crystal/Cramic谐振器(Crystal/Ceramics Resonant)选择时钟配置,并且配置系统时钟SYSCLK为72MHz,以修改HCLK的值。

  4.配置调试模式非常重要,否则将导致第一个录制程序遵循调试器的系统设置,选择调试作为串行线

  5.配置GPIO GPIO设置,在右侧图片中找到LED灯的相应引脚,选择GPIO_OUTPUT,输出低级别以点亮,您可以添加自定义标签

  选择设置并检查激活

  执行特定的参数配置。

  PCLK1 = 36m,如图所示,因此计时器时钟tclk = 36*2 = 72m。

  计时器溢出时间:

  tout = 1 /(tclk /(psc + 1))?(arr + 1)

  使计时器中断

  输入项目名称的IDE开发环境和项目路径MDK-RM V5,以生成每个外围的独立文件。所有初始化代码均在MAIN中生成。C检查:初始化代码在相应的外围文件中生成。例如,GPIO初始化代码是在GPIO.C.C.Click生成代码中生成代码中生成的。

  打开中断服务功能文件,查找TIM6中断服务功能中断服务功能,调用计时器中断处理功能

  打开文件并找到计时器中断处理功能的原型。主要函数是确定哪个事件被中断的事件,从哪个计时器生成,清除中断标识位,然后调用中断恢复函数。

  /注意:不应修改此功能,当需要回调时,如果需要重建功能,则不应更改HAL_GPIO_EXTI_CALLBACK CORE。

  根据官方提醒,我们应该再次定义该功能。这是一个弱的徽标。带有此功能的功能是一个微弱的功能,也就是说,您可以在其他地方编写具有相同名称和参数的函数。编译器将忽略此功能。执行您编写的功能;这是错误报告的定义。当未处理计时器号时,编译器将不会报告警告。实际上,当我们开发时,我们将不再需要中断服务功能。我们只需要找到此中断恢复功能并将其重写,并且此回调功能仍然非常方便。启用了多个中断后,STM32Cubemx将自动将几个中断服务功能集成在一起,并调用回调函数,也就是说,无论如何,无论如何中断,我们只需要重写一个回调字母,并确定通过数字传递的通行设备就可以了。

  接下来,我们添加此文件的底部

  现在,输入主函数,并在while循环之前添加计时器函数。此处传输的HTIM6是计时器初始化后的结构体。

  现在的实验现象是每1秒钟旋转一次LED灯

  STM32Cubemx使用HAL库生成的代码:

  使用STM32标准库的代码:

  对应

  对应

  对应

  应在和平之间添加用户代码,否则下次使用STM32Cubemx重新加工代码时,它将被删除。

  ?Leung在2021年1月14日写信

  ?参考:STM32Cubemx系列教程3:基本计时器设备

  STM32Cubemx实际战斗教程(4) - 基本计时器(或光)

  “嵌入式-STM32开发指南”的第二部分 - 第4章计时器(HAL库)

  原始:https://juejin.cn/post/7099681073881153567