定时器是这样子配置的,我需要输出50HZ的交流正弦波
timer_parameter_struct timer_initpara;
rcu_periph_clock_enable(RCU_TIMER5);
//定时器TIM5初始化
timer_deinit(TIMER5);
/* 定时器5挂载在APB1,时钟频率为120MHZ
prescaler:定时器时钟分频
period:定时器更新周期
data_size:输出正弦波数据点个数
T_sin = data_size*(prescaler+1)*(period+1) / 120
f_sin = 1/T_sin * 1000000
当前需要50HZ
data_size取1000,prescaler取119,period取19
*/
timer_struct_para_init(&timer_initpara);
timer_initpara.prescaler = 119;
timer_initpara.alignedmode = TIMER_COUNTER_EDGE;
timer_initpara.counterdirection = TIMER_COUNTER_UP;
timer_initpara.period = 19;
timer_initpara.clockdivision = TIMER_CKDIV_DIV1;
timer_initpara.repetitioncounter = 0;
timer_init(TIMER5, &timer_initpara);
timer_master_output_trigger_source_select(TIMER5, TIMER_TRI_OUT_SRC_UPDATE);
timer_enable(TIMER5);
然后输出波形成这样子 |