void NVIC_Configuration(void)
{
/***********************定时器2中断**********************************/
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;//使能或者失能指定的 IRQ通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;//设置了成员 NVIC_IRQChannel中的先占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//设置了成员 NVIC_IRQChannel中的从优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能初始化命令
NVIC_Init(&NVIC_InitStructure);//初始化
/***********************定时器4中断**********************************/
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;//使能或者失能指定的 IRQ通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;//设置了成员 NVIC_IRQChannel中的先占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//设置了成员 NVIC_IRQChannel中的从优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能初始化命令
NVIC_Init(&NVIC_InitStructure);//初始化
}
/*******************************************************************************
* 函数名称: Time2_Configuration(void)
* 函数功能: Time2 设置 计数器
* 参数变量: NONE
* 全局变量: NONE
* 调用函数:
* 修改时间:
* 版 本:V1.0
* 状 态:调试完成
*******************************************************************************/
void Time2_Configuration(void)
{
/************************* 基本定时器模式设置**************************/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM4, ENABLE); //使能 TIM3 时钟
TIM_DeInit(TIM2);//初始化定时器2
TIM_DeInit(TIM4);//初始化定时器4
TIM_TimeBaseStructure.TIM_Period = 65535; //初值
TIM_TimeBaseStructure.TIM_Prescaler = 2; //设置了用来作为 TIMx 时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ; //设置了时钟分割1:1
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数方式 向上计数
TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure); //根据 TIM_TimeBaseInitStruct 中指定的参数初始化 TIMx 的时间基数单位
TIM_TimeBaseInit(TIM4, & TIM_TimeBaseStructure); //根据 TIM_TimeBaseInitStruct 中指定的参数初始化 TIMx 的时间基数单位
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2 ,DISABLE);//不重映射
TIM_ITConfig(TIM2, TIM_IT_Update ,ENABLE); //使能中断
TIM_ITConfig(TIM4, TIM_IT_Update ,ENABLE); //使能中断
TIM_Cmd(TIM2, ENABLE);//使能外设 TIME2
TIM_Cmd(TIM4, ENABLE);//使能外设 TIME4
}
/*******************************************************************************
* 函数名称: TIM3_IRQHandler(void)
* 函数功能: TIM3 中断函数
* 参数变量: NONE
* 全局变量: NONE
* 调用函数:
* 修改时间:
* 版 本: V1.0
* 状 态:
*******************************************************************************/
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3, TIM_IT_Update ) != RESET)
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);//清除标志
//
}
}
/*******************************************************************************
* 函数名称: TIM4_IRQHandler(void)
* 函数功能: TIM4 中断函数
* 参数变量: NONE
* 全局变量: NONE
* 调用函数:
* 修改时间:
* 版 本: V1.0
* 状 态:
*******************************************************************************/
void TIM4_IRQHandler(void)
{
if(TIM_GetITStatus(TIM4, TIM_IT_Update ) != RESET)
{
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);//清除标志
//
countx++;
if(countx<120){
GPIO_SetBits(GPIOF,GPIO_Pin_7);
}//保存数据//关闭所有的LED指示灯
else {
GPIO_ResetBits(GPIOF,GPIO_Pin_7);
}
}
}
上一篇:STM32 RCC配置
下一篇:STM32 UART5 中断接收程序
推荐阅读最新更新时间:2024-03-16 15:13
设计资源 培训 开发板 精华推荐
- 盛夏狂欢,与Microchip一起探索时钟与时序之旅 轻松答问题~赢奖品
- 学C2000精品课程,低价抢购 C2000 LaunchPad!
- 最后一天!Beetle ESP32-C3免费测评,赶紧上车
- 商业航空解决方案,赋能互联飞行
- 下载有礼!是德科技高速数字精选解决方案,专为您的数字设计而挑战!
- ADI学霸型讲师又来了,探讨MEMS传感器和工业设备的故障监测
- 我为TI M4开发板Hanker试用狂!
- 【EEWORLD第二十三届】2011年02月社区明星人物揭晓!
- 看是德科技利用校准降低仪器测量不确定度、提高测试精度 直播享好礼!
- 不可错过的一次邂逅,TTI携TE传感器样片与你相见!免费样片申请活动开始啦~