微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 定时器应用(AC6)

定时器应用(AC6)

时间:10-02 整理:3721RD 点击:

STM32F767 的定时器功能十分强大,有 TIM1 和 TIM8 等高级定时器,有 LPTIM1 低功耗定时器, 也有 TIM2~TIM5,TIM9~TIM14 等通用定时器,还有 TIM6 和TIM7 等基本定时器,总共达 15 个定时器之多。

在STM32CubeMX中,对于基本的定时器应用配置如下图,选择上时钟源就可以了。



然后,在外设的配置中配置定时器的时间 ,计数方式等等。



当工程生成后,编译下载后的程序中的定时器并没有被启动。那是因为,生成的工程只是配置、初始化了定时器并没有打开,也没有相应的回调函数。

为此,还要手动的进行添加。

对于使用了中断的定时器,使用如下函数打开定时器与中断。

  1. HAL_TIM_Base_Start_IT(&htim2);

复制代码


而中断的回调函数如下这种形式的。

  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
  2. {
  3.         if (htim->Instance == TIM2) {
  4.                 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
  5.         }
  6. }

复制代码


那么,至此,定时器的基本配置就完成 了,烧写程序后,PB0的LED会闪。

仿真界面如下图:



对于定时器的其他功能,只要在外设那个界面进行相应的,对于定时器2的四个通道可以设置为不同的功能。



原子的例程也很详细了,不再一一讲述了。可能去看原子 的手册和例程。

ac6下你尝试在线调试了吗?

试了,可以的,上面就有一个仿真时的图啊。

嗯嗯,我用eclipse下搭建的开发环境,简单的程序可以调试,到了大型的程序,带ucosiii的,用openocd调试总是出错,ac6下调试选项你用的是openocd还是stlink呢?

用的stlink,感觉这个开发环境还是用不太熟悉。
不过编译速度到是比Keil要快一些。

恩,知道了,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top