打印

stm32f100的定时器初始化问题

[复制链接]
4073|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冷若寒|  楼主 | 2011-6-28 19:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近用到STM32F100的定时器17,初始化如下,但是单步执行时却发现布恩给你改变寄存器的数据?不知道是什么原因啊?大家帮忙分析下

void Timer17_Configuration(void)
{
    TIM_TimeBaseInitTypeDef TIM17_TimeBaseStructure;
   TIM_ICInitTypeDef       TIM_ICInitStruct;
  NVIC_InitTypeDef        NVIC_InitStructure;
   GPIO_InitTypeDef        GPIO_InitStructure;
   
    // Enable TIM17 as CounterMode_Up
    // Timer configuration in Clear on capture mode
    RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM17, ENABLE);
    TIM_DeInit(TIM17);
   
    GPIO_StructInit(&GPIO_InitStructure);
    /* Configure PB.07 as IR input */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOB, &GPIO_InitStructure);   
   
   TIM_TimeBaseStructInit(&TIM17_TimeBaseStructure);
   /* Time Base configuration */
   TIM17_TimeBaseStructure.TIM_Prescaler = 0xffff;
   TIM17_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
   TIM17_TimeBaseStructure.TIM_Period = U16_MAX;
   TIM17_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV4;  
   TIM_TimeBaseInit(TIM17, &TIM17_TimeBaseStructure);
   
    TIM_ICStructInit(&TIM_ICInitStruct);
    TIM_ICInitStruct.TIM_Channel = TIM_Channel_1;
    TIM_ICInitStruct.TIM_ICSelection = TIM_ICPolarity_Rising; //TIM_ICPolarity_Falling;
    TIM_ICInitStruct.TIM_ICFilter = 0x0b;
    TIM_ICInit(TIM17,&TIM_ICInitStruct);

    // Enable the IR_TIMER IRQChannel
    NVIC_InitStructure.NVIC_IRQChannel = TIM1_TRG_COM_TIM17_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = TIMx_PRE_EMPTION_PRIORITY;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = TIMx_SUB_PRIORITY;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
    // Clear the TIMx's pending flags
    TIM_ClearFlag(TIM17, TIM_FLAG_Update | TIM_FLAG_CC1 );
    // Selected input capture and Update (overflow) events generate interrupt
    TIM_ITConfig(TIM17, TIM_IT_CC1, ENABLE);
    TIM_ITConfig(TIM17, TIM_IT_Update, ENABLE);
    TIM_SetCounter(TIM17, 0);
    TIM_Cmd(TIM17, ENABLE);
}
沙发
冷若寒|  楼主 | 2011-6-28 19:37 | 只看该作者
最近用到STM32F100的定时器17,初始化如下,但是单步执行时却发现不能改变寄存器的数据?不知道是什么原因啊?大家帮忙分析下

使用特权

评论回复
板凳
冷若寒|  楼主 | 2011-6-28 19:38 | 只看该作者
也就是执行了上面的代码TIM17 的寄存器数值不改变,像没被执行似地

使用特权

评论回复
地板
airwill| | 2011-6-28 22:29 | 只看该作者
你是怎么观察寄存器的数值变化的呢?
会不会是开发环境的问题? 有时候开发环境对增强的外设寄存器显示有问题的
设定个断点, 看看定时中断有没有执行?

使用特权

评论回复
5
冷若寒|  楼主 | 2011-6-29 08:54 | 只看该作者
中断没有执行啊,就是执行上面这段代码不能修改寄存器的数值,我在初始化TIM1和TIM2时都能修改,所以很郁闷啊。

使用特权

评论回复
6
冷若寒|  楼主 | 2011-6-29 12:05 | 只看该作者
有没人遇到过这样的问题

使用特权

评论回复
7
冷若寒|  楼主 | 2011-6-29 19:23 | 只看该作者
有用过STM32F100的芯片吗

使用特权

评论回复
8
yymm1| | 2011-6-29 22:13 | 只看该作者
没见过

使用特权

评论回复
9
airwill| | 2011-7-1 11:07 | 只看该作者
亦或, 你的处理器就没有那个定时器呢?

使用特权

评论回复
10
香水城| | 2011-7-1 11:32 | 只看该作者
能用配置APB1的函数配置APB2的时钟吗: RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM17, ENABLE);

使用特权

评论回复
11
冷若寒|  楼主 | 2011-7-1 16:19 | 只看该作者
谢谢!搞定了,太大意了。

使用特权

评论回复
12
凌云展翅| | 2011-7-9 12:30 | 只看该作者
路过~~·

使用特权

评论回复
13
546374708| | 2011-7-18 09:58 | 只看该作者
不清楚

使用特权

评论回复
14
luo_2006| | 2011-7-19 19:18 | 只看该作者
围观。。。。

使用特权

评论回复
15
276036165| | 2011-7-23 12:06 | 只看该作者
路过

使用特权

评论回复
16
cathyxie| | 2011-8-5 10:21 | 只看该作者
酱油

使用特权

评论回复
17
yswtxiao| | 2013-8-27 12:02 | 只看该作者
冷若寒 发表于 2011-7-1 16:19
谢谢!搞定了,太大意了。

楼主搞定了也不分享下!

使用特权

评论回复
18
乌月明星稀| | 2013-8-27 12:59 | 只看该作者
无语。

使用特权

评论回复
19
乌月明星稀| | 2013-8-29 15:16 | 只看该作者
这么大意,查找这类问题呢,一、时钟是否配置成功;二、检查配置问题。需要一个调试方法的。

使用特权

评论回复
20
闫小明| | 2017-5-2 15:21 | 只看该作者
yswtxiao 发表于 2013-8-27 12:02
楼主搞定了也不分享下!

就是就是

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

137

帖子

1

粉丝