博客参考资料
https://www.rishiqing.com/share/doc/NzQ4MzMyOQ==?version=reditor
https://www.cnblogs.com/firege/p/5805886.html
https://zhuanlan.zhihu.com/c_1101899020108214272
视频
https://www.bilibili.com/video/av23178859?p=68
------------------------------------------------------------------------
整个定时器周期由下面2个寄存器决定:
----------------------------------------------------------------------------------------------------------------
硬时科技P66
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
硬时科技P68
定时器初始化结构体,跟硬件有关,硬件层面上的:
对应寄存器手册上内容
------------------------------------------------------------------------下面是TIMx_CNT寄存器---------------------------------------------------------------------------------
对应寄存器手册上内容
---------------------------------------------------------------------------下面是TIMx_ARR寄存器--------------------------------------------------------------------------------
定时器产生中断的频率=计数器时钟频率CK_CNT/自动重装载值
对应寄存器手册上内容
1.
2.
-------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------以下为定时器句柄结构体-----------------------------------------------------------------
定时器句柄结构体,定时器编程使用,软件层面上的:
-------------------------------------------------------------------------------------------------------------
定时器寄存器基地址:用于区分定时器。通过这个来判断,当前使用哪一个定时器。
-----------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
基本定时器TIM6没有通道
-----------------------------------------------------------------------------------------------------
那么TIM6有几个DMA,通过编程手册查询
就是通过下面的表来查一下有没有TIM6
可以查到有TIM6_UP,所以基本定时器也是有DMA功能的
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
代码分析
bsp_BasicTIM.h头文件里面定义
#define BASIC_TIMx TIM7 #define BASIC_TIM_RCC_CLK_ENABLE() __HAL_RCC_TIM7_CLK_ENABLE() //定时器7相关时钟 #define BASIC_TIM_RCC_CLK_DISABLE() __HAL_RCC_TIM7_CLK_DISABLE() //定时器7相关时钟 #define BASIC_TIM_IRQ TIM7_IRQn //定义中断号 #define BASIC_TIM_INT_FUN TIM7_IRQHandler //定义中断服务函数。
关于中断号(TIM7_IRQn),不能自己随便写,这是由汇编文件给出的。