打印
[STM32F1]

STM32 TIM1问题

[复制链接]
1760|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TataJen|  楼主 | 2016-2-26 12:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
SWD烧写,STM32第一次烧写的时候,TIM1/2/3 PWM工作正常,重新上电后,TIM1不工作,TIM2/3工作正常。求解释。
沙发
gcy_eyic| | 2016-2-26 12:48 | 只看该作者
在TIM1中断函数里打个断点,看是否能跳入断点。另,TIM1是高级定时器,和TIM2 TIM3有些设置上的区别,仔细看看文档。

使用特权

评论回复
板凳
TataJen|  楼主 | 2016-2-26 14:04 | 只看该作者
void ChipHalInit(void) {       
    //初始化时钟源
    RCC_Init();   

    //初始化NVIC
    NVIC_Init();
   
    //初始化GPIO
    GPIO_Init();
   
    //初始化串口
    USART_Init();
   
    //初始化TIME
    Timer_Init();
   
    //初始化外部中断
    EXTI_Init();

    //初始化ADC
    ADC_DMA_Init();
   
    //初始化系统时钟定时器
    SysTick_Init();
}
把外部中断初始化挪到如下

void ChipHalInit(void) {       
    //初始化时钟源
    RCC_Init();
   
    //初始化外部中断
    EXTI_Init();
    //初始化NVIC
    NVIC_Init();
   
    //初始化GPIO
    GPIO_Init();
   
    //初始化串口
    USART_Init();
   
    //初始化TIME
    Timer_Init();
   
    //初始化ADC
    ADC_DMA_Init();
   
    //初始化系统时钟定时器
    SysTick_Init();
}
正常了,什么鬼,
外部中断初始化放到如下位置,发现电机运行起来电流只有正常的一半大小,重新上电后需要按下复位键。
void ChipHalInit(void) {       
    //初始化时钟源
    RCC_Init();
   
    //初始化NVIC
    NVIC_Init();
   
    //初始化GPIO
    GPIO_Init();
   
    //初始化串口
    USART_Init();
        //初始化外部中断
    EXTI_Init();

    //初始化TIME
    Timer_Init();
   
    //初始化ADC
    ADC_DMA_Init();
   
    //初始化系统时钟定时器
    SysTick_Init();
}

使用特权

评论回复
地板
TataJen|  楼主 | 2016-2-26 14:11 | 只看该作者

2

使用特权

评论回复
5
mmuuss586| | 2016-2-26 20:00 | 只看该作者
TIM1的部分的初始化程序还有问题吧

使用特权

评论回复
6
Rooney30| | 2016-2-26 22:25 | 只看该作者
你得说说是stm32的哪款芯片,否则不好判断啊

使用特权

评论回复
7
gejigeji521| | 2016-2-26 22:27 | 只看该作者
定时器的配置是不正确的。TIM1是高级定时器,其他是普通的,你不能按照普通的设置方式去设置这个高级的。

使用特权

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

本版积分规则

41

主题

126

帖子

6

粉丝