震惊,原子stm32竟然会出现这样的问题!

2019-10-11 16:11发布

其实我想问一下,我建c8t6的工程,选用md的启动文件,为什么我定时器定时5ms,实际却是50ms,我延时500ms让LED闪烁,却发现是5s。这是为什么?不知道为什么,求解!代码如下
                LED0=0;
                delay_ms(500);
                LED0=1;
                delay_ms(500);

void Timer1_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
        TIM_DeInit(TIM1);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
TIM_TimeBaseStructure.TIM_Period = 49;//×Ô¶ˉÖØ×°3õÖμ£¬Ã¿200′ÎÖD¶Ïò»′Π 5MS
TIM_TimeBaseStructure.TIM_Prescaler = 7199;//pscÔ¤·ÖÆμ
TIM_TimeBaseStructure.TIM_ClockDivision = 0;//ê±Öó2»·ÖÆμ
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//ÏòéϼÆêyÄ£ê½
TIM_TimeBaseInit(TIM1, & TIM_TimeBaseStructure);
       
TIM_ARRPreloadConfig(TIM1,ENABLE);//ê1ÄüTIMxÔúARRéÏμÄԤװÔؼÄ′æÆ÷
TIM_Cmd(TIM1,ENABLE);//ê1Äü¶¨ê±Æ÷
TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);        //ê1Äü¶¨ê±Æ÷ÖD¶Ï
       
  NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn;//éèÖÃí¨μàêy
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;//Ö÷óÅÏ輶
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//′óóÅÏ輶
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);       
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
xuande
1楼-- · 2019-10-13 02:36

STM32的时钟结构比51复杂多了,
不同外设的时钟源都不一样,必须搞清每级时钟的具体频率。

小小怪
2楼-- · 2019-10-13 05:59
 精彩回答 2  元偷偷看……
小陀螺爱炒蛋
3楼-- · 2019-10-13 11:51
震惊,不转不是中国人!~
小陀螺爱炒蛋
4楼-- · 2019-10-13 12:44
震惊,不转不是中国人!~
默默莱
5楼-- · 2019-10-13 18:27
楼主,你就别怀疑原子哥了,代码贴好点!描叙清楚点!
东北小辉辉
6楼-- · 2019-10-13 20:50
楼主标题党啊,八成跑的是内部时钟,debug看一下系统时钟是多少。

一周热门 更多>