发表于 2014-11-6 14:42:37

    TIM_TimeBaseStructInit(&TIM_TimeBaseInitStruct);
    TIM_TimeBaseInitStruct.TIM_Period =60000;         //TIM update rate =TIM counter clock/TIM_Period =6MHz/60000=100Hz   
    TIM_TimeBaseInitStruct.TIM_Prescaler =1001;         //TIM counter clock =TIMxCLK/(Prescaler +1) =72MHz/12=6MHz      
    TIM_TimeBaseInitStruct.TIM_ClockDivision = 0;       //时钟倍频
    TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//计数方向向上计数
    TIM_TimeBaseInit(TIM4, &TIM_TimeBaseInitStruct);   
试试我的代码

风铃草2 发表于 2014-11-6 19:28:10

安 发表于 2014-11-6 14:42
TIM_TimeBaseStructInit(&TIM_TimeBaseInitStruct);
    TIM_TimeBaseInitStruct.TIM_Period =60000;   ...

恩,小问题而已,改天试一试,只是希望神舟能够重视一下,是否是例程的问题我不在乎,只要我发的500多块大洋买的板子没问题就行!

风铃草2 发表于 2015-1-6 16:35:36

没错,是0.5s中断一次的:   外部晶振25M用神舟 的system_stm32f4xx.c文件 生成的PCLK1是42MHZ的(用RCC_GetClocksFreq(&Sysclock);函数读取时钟), 而TIM时钟是二倍频的84MHZ,加上配置:

TIM_Period = (10000 - 1);
TIM_Prescaler= (4500 - 1);
中断一次的时间就是:10000/(84M/4500) 约等于 0.5s
页: 1 [2]
查看完整版本: 神舟王例程问题