完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
tiM2~TIM4我都用了,现在还需要用一个计时器,但是只要我在定时器初始化加上TIM1的初始化,还没写中断函数,其他程序就什么都运行不了了,想请问大佬们是为什么呢
#include "STM32f10x.h" // Device headervoid Timer_Init(void){ //超声波的定时器 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //启用TIM4时钟 TIM_InternalClockConfig(TIM4); //设置TIM4使用内部时钟,其实就算不写也默认用内部时钟 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure4; //定义结构体,配置定时器 TIM_TimeBaseInitStructure4.TIM_ClockDivision = TIM_CKD_DIV1; //设置1分频(不分频) TIM_TimeBaseInitStructure4.TIM_CounterMode = TIM_CounterMode_Up; //设置计数模式为向上计数 TIM_TimeBaseInitStructure4.TIM_Period = 10 - 1; //ARR 自动重装器的值 (0~65535) //计数器溢出频率CK_CNT_OV= TIM_TimeBaseInitStructure4.TIM_Prescaler = 72 - 1; //PSC 预分频器的值 (0~65535) //=CK_PSC/(PSC+1)/(ARR+1) TIM_TimeBaseInitStructure4.TIM_RepetitionCounter = 0; //重复计数器(高级定时器才有) TIM_TimeBaseInit(TIM4, TIM_TimeBaseInitStructure4); //时基单元配置 TIM_ClearFlag(TIM4, TIM_FLAG_Update); //清除更新中断标志位 TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE); //开启更新中断,开启了更新中断到NVIC的通路 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断优先级分组 NVIC_InitTypeDef NVIC_InitStructure4; //定义结构体,配置中断优先级 NVIC_InitStructure4.NVIC_IRQChannel = TIM4_IRQn; //指定中断通道(定时器在NVIC里的通道 NVIC_InitStructure4.NVIC_IRQChannelCmd = ENABLE; //中断使能 NVIC_InitStructure4.NVIC_IRQChannelPreemptionPriority = 2; //抢占优先级 NVIC_InitStructure4.NVIC_IRQChannelSubPriority = 1; //响应优先级 NVIC_Init( NVIC_InitStructure4); TIM_Cmd(TIM4, ENABLE); //开启定时器 //人体红外的定时器 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//开启APB1总线上的APB1的时钟 TIM_InternalClockConfig(TIM3);//调用使用内部时钟,其实就算不写也默认用内部时钟 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure3; TIM_TimeBaseInitStructure3.TIM_ClockDivision = TIM_CKD_DIV1;//1分频 TIM_TimeBaseInitStructure3.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式 TIM_TimeBaseInitStructure3.TIM_Period = 10000-1;//ARR 自动重装器的值 (0~65535) //计数器溢出频率CK_CNT_OV= TIM_TimeBaseInitStructure3.TIM_Prescaler = 7200-1;//PSC 预分频器的值 (0~65535) //=CK_PSC/(PSC+1)/(ARR+1) TIM_TimeBaseInitStructure3.TIM_RepetitionCounter = 0;//重复计数器的值 TIM_TimeBaseInit(TIM3, TIM_TimeBaseInitStructure3); //时基单元配置 TIM_ClearFlag(TIM3,TIM_FLAG_Update);//避免刚初始化完就立刻进入中断 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//开启了更新中断到NVIC的通路 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitTypeDef NVIC_InitStructure3; NVIC_InitStructure3.NVIC_IRQChannel = TIM3_IRQn;//定时器2在NVIC里的通道 NVIC_InitStructure3.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure3.NVIC_IRQChannelPreemptionPriority = 1;//抢占优先级 NVIC_InitStructure3.NVIC_IRQChannelSubPriority = 2;//响应优先级 NVIC_Init( NVIC_InitStructure3); TIM_Cmd(TIM3 , ENABLE);//启动定时器}/* //称重的定时器 RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//开启APB2总线上的APB1的时钟 TIM_InternalClockConfig(TIM1); //设置TIM1使用内部时钟,其实就算不写也默认用内部时钟 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure1; //定义结构体,配置定时器 TIM_TimeBaseInitStructure1.TIM_ClockDivision = TIM_CKD_DIV1; //设置1分频(不分频) TIM_TimeBaseInitStructure1.TIM_CounterMode = TIM_CounterMode_Up;//设置计数模式为向上计数 TIM_TimeBaseInitStructure1.TIM_Period = 10000-1; //ARR 自动重装器的值 (0~65535) //计数器溢出频率CK_CNT_OV= TIM_TimeBaseInitStructure1.TIM_Prescaler = 7200-1; //PSC 预分频器的值 (0~65535) //=CK_PSC/(PSC+1)/(ARR+1) TIM_TimeBaseInitStructure1.TIM_RepetitionCounter = 0; //重复计数器(高级定时器才有) TIM_TimeBaseInit(TIM1, TIM_TimeBaseInitStructure1); //时基单元配置 TIM_ClearFlag(TIM1, TIM_FLAG_Update); //清除更新中断标志位 TIM_ITConfig(TIM1, TIM_IT_Update | TIM_IT_Trigger, ENABLE); //开启更新中断,开启了更新中断到NVIC的通路 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitTypeDef NVIC_InitStructure1; NVIC_InitStructure1.NVIC_IRQChannel = TIM1_UP_IRQn;//定时器2在NVIC里的通道 NVIC_InitStructure1.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure1.NVIC_IRQChannelPreemptionPriority = 3;//抢占优先级 NVIC_InitStructure1.NVIC_IRQChannelSubPriority = 3;//响应优先级 NVIC_Init( NVIC_InitStructure1); TIM_Cmd(TIM1 , ENABLE);//启动定时器}*///中断函数模板/*void TIM4_IRQHandler(void) //更新中断函数//当定时器产生更新中断时,函数自动被执行{ if (TIM_GetITStatus(TIM4, TIM_IT_Update) == SET) //获取TIM4定时器的更新中断标志位//如果(获取中断标志位==SET),那么可以执行相应地用户代码 { TIM_ClearITPendingBit(TIM4, TIM_IT_Update); //清除更新中断标志位 }}*/ |
|
相关推荐
1个回答
|
|
用stm32cubemx吧,可以减少很多设置问题。
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:27 , Processed in 0.781336 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号