小学生
最后登录1970-1-1
在线时间 小时
注册时间2021-8-28
|
楼主 |
发表于 2021-12-20 17:02:03
|
显示全部楼层
下面是函数初始化的全部代码,例程中给的是定时器 7 将所有的TIM7改为了TIM10
static void BASIC_TIM10_Mode_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; //结构体声明
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM10,ENABLE); //开启时钟
TIM_TimeBaseInitStruct.TIM_Prescaler=16800-1; //预分频
TIM_TimeBaseInitStruct.TIM_Period=10000-1; //周期
TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;//设置计数模式(向上计数)
TIM_TimeBaseInit(TIM10,&TIM_TimeBaseInitStruct); //结构体初始化
TIM_ITConfig(TIM10,TIM_IT_Update,ENABLE); //启动定时器更新中断
TIM_Cmd(TIM10,ENABLE); //使能
}
static void NVIC_TIM10Basic_Config(void)
{
NVIC_InitTypeDef NVIC_InitStruct;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStruct.NVIC_IRQChannel=TIM1_UP_TIM10_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=3;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStruct);
}
void TIM10_Basic_Config(void)
{
NVIC_TIM10Basic_Config();
BASIC_TIM10_Mode_Config();
}
void TIM1_UP_TIM10_IRQHandler(void)//中断服务程序
{
if(TIM_GetITStatus(TIM10,TIM_IT_Update) != RESET )
{
LED2_TOGGLE
TIM_ClearITPendingBit(TIM10,TIM_IT_Update);
TIM_ClearITPendingBit(TIM1,TIM_IT_Update);
LED2_ON
}
} |
|