定时器应用(AC6)
时间:10-02
整理:3721RD
点击:
STM32F767 的定时器功能十分强大,有 TIM1 和 TIM8 等高级定时器,有 LPTIM1 低功耗定时器, 也有 TIM2~TIM5,TIM9~TIM14 等通用定时器,还有 TIM6 和TIM7 等基本定时器,总共达 15 个定时器之多。
在STM32CubeMX中,对于基本的定时器应用配置如下图,选择上时钟源就可以了。
然后,在外设的配置中配置定时器的时间 ,计数方式等等。
当工程生成后,编译下载后的程序中的定时器并没有被启动。那是因为,生成的工程只是配置、初始化了定时器并没有打开,也没有相应的回调函数。
为此,还要手动的进行添加。
对于使用了中断的定时器,使用如下函数打开定时器与中断。
- HAL_TIM_Base_Start_IT(&htim2);
而中断的回调函数如下这种形式的。
- void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
- {
- if (htim->Instance == TIM2) {
- HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
- }
- }
那么,至此,定时器的基本配置就完成 了,烧写程序后,PB0的LED会闪。
仿真界面如下图:
对于定时器的其他功能,只要在外设那个界面进行相应的,对于定时器2的四个通道可以设置为不同的功能。
原子的例程也很详细了,不再一一讲述了。可能去看原子 的手册和例程。
ac6下你尝试在线调试了吗?
试了,可以的,上面就有一个仿真时的图啊。
嗯嗯,我用eclipse下搭建的开发环境,简单的程序可以调试,到了大型的程序,带ucosiii的,用openocd调试总是出错,ac6下调试选项你用的是openocd还是stlink呢?
用的stlink,感觉这个开发环境还是用不太熟悉。
不过编译速度到是比Keil要快一些。
恩,知道了,