STM32笔记:TIM

  1. stm32 定时器常用寄存器:
    1.1 自动重装载寄存器(TIMX_ARR):自动装载寄存器是预先装载的,写或读自动重装载寄存器将访问预装载寄存器。根据在TIMx_CR1寄存器中的自动装载预装载使能位(ARPE)的设置,预装载寄存器的内容被立即或在每次的更新事件UEV时传送到影子寄存器。当计数器达到溢出条件(向下计数时的下溢条件)并当TIMx_CR1寄存器中的UDIS位等于’0’时,产生更新事件。更新事件也可以由软件产生。
    1.2 预分频器( TIMX_PSC):这个控制寄存器带有缓冲器,它能够在工作时被改变。新的预分频器参数在下一次更新事件到来时被采用。
    1.3 捕获/比较寄存器N( TIMX_CCRN ), N:1~4:寄存器能够在任何时候通过软件进行更新以控制输出波形,条件是未使用预装载寄存器(OCxPE=’0’,否则TIMx_CCRx影子寄存器只能在发生下一次更新事件时被更新)。
    以上3个寄存器都有各自的影子寄存器,程序运行中,实际起作用的是影子寄存器,所以上述3个寄存器也是预装载寄存器。

  2. 预装载寄存器的值更新到影子寄存器
    2.1 在触发中断时:
    2.1.1 正常的更新事件触发中断
    2.1.2 软件触发更新中断:通过设置TIMx_EGR寄存器中的UG位来初始化所有的寄存器。 即TIMx->EGR = TIM_EventSource;( 库函数里的接口:TIM_GenerateEvent)。
    2.2 软件关闭预装载寄存器
    TIM_ARRPreloadConfig: 关闭/打开 ARR 的预装载寄存器
    TIM_OC3PreloadConfig: 关闭/打开 CCR 的预装载寄存器

  3. 输出比较模式的配置步骤:
    3.1 选择计数器时钟(内部,外部,预分频器)
    3.2 将相应的数据写入TIMx_ARR和TIMx_CCRx寄存器中
    3.3 如果要产生一个中断请求和/或一个DMA请求,设置CCxIE位和/或CCxDE位。
    3.4 选择输出模式,例如当计数器CNT与CCRx匹配时翻转OCx的输出引脚,CCRx预装载未用,开启OCx输出且高电平有效,则必须设置OCxM=’011’、OCxPE=’0’、CCxP=’0’和CCxE=’1’。
    3.5 设置TIMx_CR1寄存器的CEN位启动计数器

猜你喜欢

转载自blog.csdn.net/weixin_45444963/article/details/109027568