×
单片机 > 单片机程序设计 > 详情

STM32定时器的TRGO信号

发布时间:2020-12-31 发布时间:
|

定时器的框图中有一个TRGO信号输出,此信号可以用来触发ADC、DAC、其他定时器等。

此信号怎么产生呢?


要使用 TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Update); 函数来选择TRGO信号的事件源,这个函数给TIMx_CR2寄存器的位6到位4赋值,位6到位4是MMS[2:0],描述如下:

如果MMS[2:0]值为000:当TIMx_EGR寄存器的UG位有效,就会触发TRGO输出。

如果MMS[2:0]值为010:当产生更新事件时,就会触发TRGO输出。


另外:


当配置MMS[2:0]值为010:当产生更新事件时,就会触发TRGO输出。还可以配合重复计数寄存器来使用:

即重复多少次后才会产生一个更新事件。比如以前是1S产生一个更新事件,当把RCR的值配置为3时,就会变成3秒产生一个更新事件。配置方法如下:


    TIM_TimeBaseStructure.TIM_Period = PWM_PERIOD;                 //计数周期

    TIM_TimeBaseStructure.TIM_Prescaler = PWM_PRSC;                //分频系数

    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV2;        //设置外部时钟TIM1ETR的滤波时间

    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned1;  //中央对齐模式1,从0计数到 TIM_Period 然后开始减到0,循环

TIM_TimeBaseStructure.TIM_RepetitionCounter = REP_RATE;        //重复计数,就是重复溢出多少次才产生一个溢出中断(产生更新事件,用来触发ADC采样)

    TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何升级STM32单片机的代码