TIM5--32位定时器的使用以及16位定时器的级联

一、对于具有32位定时器的芯片型号(V203RB,V208):

方法一
因为此定时器是32bit的,库不太好做兼容,需要用寄存器自己操作,且必须采用位定义的方式。且CNT寄存器需要采用32bit地址去访问

 

 

下面是操作方式(其实就是在传完结构体后对此地址赋值,以32地址形式):

 

 

 获取CNT值也要采用32bit地址去访问:

 

 

 若使用TIM的PWM模式:

比较捕获寄存器也需要采用上述方式:

方法二:修改库中的相关寄存器位数(修改后可直接和普通定时器一样来使用库函数来操作)

这个可改成跳过去改成uint32_t.

 

其实这个值最终是传给ATRLR的,也将他给修改成u32,同时把保留位给删掉,这样后面寄存器地址不会受影响。

 

 同时CNT也需要和上面一样的操作

 

如果用到PWM的话这些也需要改成u32,同时将保留位也屏蔽掉。

至此就可以像普通定时器一样来操作32位定时器了,同时也不影响普通定时器的使用!

 

 二、对于没有32位定时器的芯片:

         对于没有32位定时器的芯片,可通过级联的方式来增加定时器的位数,

   示例:下面我们把定时器二和三级联起来,定时器三做主,定时器二做从

     我们TIM2,TIM3正常初始化在TIM2处加上这个(从机设置):

               需注意选择触发源时选了TIM_TS_ITR2,原因手册中见下图

 

 

 

        TIM3处(主机设置):

 

 这样就完成了定时器的级联,可以直接理解为TIM2的时钟源现在是TIM3,那么这样的话,还可以用定时器二来级联另一个定时器,来实现48位甚至64位定时器。

           

posted @ 2023-03-04 10:23  WCH_CH32  阅读(411)  评论(0编辑  收藏  举报