[APM32F4] 【APM32F411V Tiny Board测评】-02-定时器测试

[复制链接]
1017|5
 楼主| shenxiaolin 发表于 2024-5-13 13:47 | 显示全部楼层 |阅读模式
本帖最后由 shenxiaolin 于 2024-5-13 14:01 编辑

定时器主要是用到了他的计数功能,当然还有其他的输入捕获,互补输出等功能我们首先看看定时器的时钟树,可以更加清楚的了解到定时器的脉络
1.png

在整个SDK中都是以407为例,但是我们的只有120M左右只有按照120M来做,所以要做适当的修改,我们这里就直接上代码

  1. #include "DRV_TIM.h"

  2. void LED_Init(void)
  3. {

  4.      GPIO_Config_T  configStruct;
  5.     /* Enable the GPIO_LED Clock */
  6.     RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOE);
  7.     /* Configure the GPIO_LED pin */
  8.     GPIO_ConfigStructInit(&configStruct);
  9.     configStruct.pin = GPIO_PIN_5|GPIO_PIN_6;
  10.     configStruct.mode = GPIO_MODE_OUT;
  11.     configStruct.speed = GPIO_SPEED_50MHz;
  12.     GPIO_Config(GPIOE, &configStruct);

  13. }

  14. void Tim_Init(void)
  15. {
  16.           TMR_BaseConfig_T baseConfig;
  17.     RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_TMR1);

  18.     /* TMR1 Configure */
  19.     baseConfig.clockDivision = TMR_CLOCK_DIV_1;
  20.     baseConfig.countMode = TMR_COUNTER_MODE_UP;
  21.     baseConfig.division = 119;
  22.     baseConfig.period = 999;
  23.     baseConfig.repetitionCounter = 0;
  24.     TMR_ConfigTimeBase(TMR1, &baseConfig);
  25.         
  26.             /* Enable TMR1 Interrupt */
  27.     TMR_EnableInterrupt(TMR1, TMR_INT_UPDATE);
  28.     NVIC_EnableIRQRequest(TMR1_UP_TMR10_IRQn, 0, 0);
  29.         
  30.     TMR_Enable(TMR1);
  31. }

  32. unsigned int TimCount=0;
  33. void TMR1_UP_TMR10_IRQHandler(void)
  34. {
  35.     if(TMR_ReadIntFlag(TMR1, TMR_INT_UPDATE) == SET)
  36.     {
  37.         TimCount++;
  38.                         if(TimCount==1000)
  39.                         {
  40.                            TimCount=0;
  41.                                  GPIO_ToggleBit(GPIOE,GPIO_PIN_5|GPIO_PIN_6);
  42.                         }
  43.         TMR_ClearIntFlag(TMR1, TMR_INT_UPDATE);
  44.     }
  45. }


所有初始化完成了之后就只现在这个样子,下载到开发板里面,周期为0.5Hz
发现频率实际上是不对的,所以要做一下时钟的配置的修改。USB的时钟的话按时修改为240/6=40MHz
2.png


szt1993 发表于 2024-5-23 18:02 | 显示全部楼层
楼主定时器是进行的延时函数?
 楼主| shenxiaolin 发表于 2024-5-25 10:06 | 显示全部楼层
szt1993 发表于 2024-5-23 18:02
楼主定时器是进行的延时函数?

定时器中断内部点灯的
WoodData 发表于 2024-5-25 23:58 | 显示全部楼层
向LZ学习学习
星辰大海不退缩 发表于 2024-6-22 20:48 | 显示全部楼层
定时器用到计数、输入捕获,互补输出等功能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:运达电气-产品经理
简介:毕业于西南科技大学,从事MCU、MPU开发工作近8年,熟悉嵌入式软硬件开发流程,产品管理以及现场项目管理。

94

主题

1358

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部