完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
时间2的配置如下:
时间1ms, /** 配置TIMER外设 param] none param[out] none retval */ void timer_config(void) { /* TIMER2配置:生成不同占空比的PWM信号: TIMER2CLK = SystemCoreClock / 72 = 1MHz */ timer_parameter_struct timer_initpara; rcu_periph_clock_enable(RCU_TIMER2); timer_deinit(TIMER2); timer_struct_para_init(&timer_initpara); /* TIMER2 配置 */ timer_initpara.prescaler = 71; //(71+1)/72000000*(999+1)=1/1000s=1ms timer_initpara.alignedmode = TIMER_COUNTER_EDGE; timer_initpara.counterdirection = TIMER_COUNTER_UP; timer_initpara.period = 999; timer_initpara.clockdivision = TIMER_CKDIV_DIV1; timer_initpara.repetitioncounter = 0; timer_init(TIMER2,&timer_initpara);//这里面会自动完成timer_autoreload_value_config的功能; timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_UP); timer_interrupt_enable(TIMER2,TIMER_INT_UP); nvic_irq_enable(TIMER2_IRQn,0U);//使能更新中断,这一句是必须有的,否则不进中断 timer_auto_reload_shadow_enable(TIMER2); timer_enable(TIMER2); } uint32_t G_TimerFlag = 0;//测试定时时间用 //定时器2的中断处理 void TIMER2_IRQHandler(void) { if(SET == timer_interrupt_flag_get(TIMER2, TIMER_INT_FLAG_UP)){ /* 清除通道 0 中断位 */ timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_UP); G_TimerFlag ++;//测试定时时间用 } } 在主循环中1s打印一次G_TimerFlag的值: while (1) { if(G_TimerFlag%1000 == 0){ printf("timer flag = %drn !",G_TimerFlag);//打印一次 } } 10s打印 可以看到1s打印一次; |
|
|
|
只有小组成员才能发言,加入小组>>
3208 浏览 9 评论
2895 浏览 16 评论
3401 浏览 1 评论
8840 浏览 16 评论
3994 浏览 18 评论
9625浏览 3评论
998浏览 3评论
518浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
521浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2244浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 06:01 , Processed in 0.759116 second(s), Total 48, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号