在哪些网站做推广,颍上网站建设,网站开发嘉比格网络,北京延庆城乡建设部网站首页Driver_TIM6.c
需要注意立即进入中断问题#xff0c;原因是预分频寄存器并没有更新预分频系数。
#include Driver_TIM6.h
#include Delay.h
/*** description: 给定时器6进行初始化* return {*}*/
void Driver_TIM6_Init(void)
{/* 1. 给定时器6开启…Driver_TIM6.c
需要注意立即进入中断问题原因是预分频寄存器并没有更新预分频系数。
#include Driver_TIM6.h
#include Delay.h
/*** description: 给定时器6进行初始化* return {*}*/
void Driver_TIM6_Init(void)
{/* 1. 给定时器6开启时钟*/RCC-APB1ENR | RCC_APB1ENR_TIM6EN;/* 2. 设置预分频值: 分频值7199表示7200分频。分频后频率10K周期100us */TIM6-PSC 7200 - 1;/*3. 设置自动重转载寄存器的值决定中断发生的频率。假设设置为9999表示计数器计数10000次发生一次中断。计数一次100us10000次1000000us正好1s*/TIM6-ARR 10000 - 1;/* 为了避免一启动立即进入更新中断,可以先产生一个更新事件 预分频寄存器和重装载寄存器都有影子寄存器预分频寄存器的影子寄存器和重装载寄存器需要CNT溢出一次才能更新*/TIM6-CR1 | TIM_CR1_URS;//产生一个更新事件 TIM6-EGR | TIM_EGR_UG; /* 预分频寄存器和重装载寄存器的值更新到影子寄存器 */// TIM6-SR ~TIM_SR_UIF;/* 4. 使能更新中断 */TIM6-DIER | TIM_DIER_UIE;/* NVIC配置 *//* 5. 设置中断优先级分组 */NVIC_SetPriorityGrouping(3);/* 6. 设置中断优先级 */NVIC_SetPriority(TIM6_IRQn, 1);/* 7. 使能定时器6的中断 */NVIC_EnableIRQ(TIM6_IRQn);/* 8. 使能计数器 */TIM6-CR1 | TIM_CR1_CEN;
}/*** description: TIM6的中断服务函数* return {*}*/
void TIM6_IRQHandler(void)
{TIM6-SR ~TIM_SR_UIF;Drviver_LED_Toggle(LED_1);printf(1\r\n);
}
Driver_TIM6.h
#ifndef __DRIVER_TIM6_H
#define __DRIVER_TIM6_H#include stm32f10x.h
#include Driver_LED.h
#include Driver_USART.hvoid Driver_TIM6_Init(void);#endif