硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4726|回复: 0
收起左侧

[NUCLEO-H743ZI] STM32H743实验例程】实验18:STM32H743实现定时器中断

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2018-4-30 00:43:50 | 显示全部楼层 |阅读模式
实验介绍
开发平台:官方STM32H743 NUCLEO板子
开发环境:MDK5.25正式版
软件版本:
(1)CMSIS软件包 V5.3.0
(2)H7的HAL库版本 V1.2.0

例程下载: 实验18:STM32H743实现定时器中断.7z (1.1 MB, 下载次数: 160)



  1. /*
  2. *********************************************************************************************************
  3. *                                                                        配置一个TIM1
  4. *********************************************************************************************************
  5. */
  6. TIM_HandleTypeDef htim1;

  7. /*
  8. *********************************************************************************************************
  9. *        函 数 名: bsp_Tim1Init
  10. *        功能说明: 配置定时器1,周期中断。
  11. *        形    参: 无
  12. *        返 回 值: 无
  13. *********************************************************************************************************
  14. */
  15. void bsp_Tim1Init(void)
  16. {
  17.     /* --------------------------------------------------------
  18.     时钟的配置如下:

  19.         System Clock source            = PLL (HSE BYPASS)
  20.         SYSCLK(Hz)                     = 400000000 (CPU Clock)
  21.         HCLK(Hz)                       = 200000000 (AXI and AHBs Clock)
  22.         AHB Prescaler                  = 2
  23.         D1 APB3 Prescaler              = 2 (APB3 Clock  100MHz)
  24.         D2 APB1 Prescaler              = 2 (APB1 Clock  100MHz)
  25.         D2 APB2 Prescaler              = 2 (APB2 Clock  100MHz)
  26.         D3 APB4 Prescaler              = 2 (APB4 Clock  100MHz)

  27.     因为APB1 prescaler != 1, 所以 APB1上的TIMxCLK = APB1 x 2 = 200MHz;
  28.     因为APB2 prescaler != 1, 所以 APB2上的TIMxCLK = APB2 x 2  =  200MHz;
  29.     APB4上面的TIMxCLK没有分频,所以就是100MHz;

  30.     APB1 定时器有 TIM2, TIM3 ,TIM4, TIM5, TIM6, TIM7, TIM12, TIM13, TIM14,LPTIM1
  31.     APB2 定时器有 TIM1, TIM8 ,TIM9, TIM15, TIM16,TIM17

  32.     APB4 定时器有 LPTIM2,LPTIM3,LPTIM4,LPTIM5
  33.    
  34.     TIM6 更新周期是 = TIM1CLK / (Period + 1)/(Prescaler + 1)
  35.         根据如下的配置,更新周期是:
  36.         TIM6CLK /(Period + 1)/(Prescaler + 1)
  37.         = 200MHz /(1999+1)/(9999+1)
  38.         = 10Hz
  39.     ----------------------------------------------------------- */
  40.        
  41.         /* 使能定时器的时钟 */
  42.         __HAL_RCC_TIM1_CLK_ENABLE();
  43.        
  44.        
  45.         /*##-1- 配置定时器外设 #######################################*/
  46.         htim1.Instance = TIM1;
  47.         htim1.Init.Prescaler = 1999;
  48.         htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
  49.         htim1.Init.Period = 9999;
  50.         htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  51.         htim1.Init.RepetitionCounter = 0;
  52.         htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  53.        
  54.         /*##-2- 使能定时器 ##########################################*/
  55.         if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
  56.         {
  57.                 Error_Handler(__FILE__, __LINE__);
  58.         }
  59.        
  60.         /*##-3- 使能溢出中断 ##########################################*/
  61.     HAL_NVIC_SetPriority(TIM1_UP_IRQn, 0, 0);
  62.     HAL_NVIC_EnableIRQ(TIM1_UP_IRQn);

  63.         /*##-4- 启动 ##########################################*/
  64.         HAL_TIM_Base_Start_IT(&htim1);
  65. }

  66. /*
  67. *********************************************************************************************************
  68. *        函 数 名: TIM1_UP_IRQHandler
  69. *        功能说明: 定时器1中断服务程序
  70. *        形    参: 无
  71. *        返 回 值: 无
  72. *********************************************************************************************************
  73. */
  74. void TIM1_UP_IRQHandler(void)
  75. {
  76.         HAL_TIM_IRQHandler(&htim1);
  77. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 10:01 , Processed in 0.334795 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表