搜索
bottom↓
回复: 20

stm32f030的systick,设置1ms tick,实际是6ms,可能是什么原因?

[复制链接]

出0入8汤圆

发表于 2017-1-13 22:22:17 | 显示全部楼层 |阅读模式
用内置晶振,8M,可能是哪儿配置不对,谢谢
void SysTick_Init(void)
{
        /* SystemFrequency / 1000    1ms中断一次
         * SystemFrequency / 100000         10us中断一次
         * SystemFrequency / 1000000 1us中断一次
         */

  if (SysTick_Config(SystemCoreClock / 1000))       
        {
                /* Capture error */
                while (1);
        }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2017-1-13 22:23:55 | 显示全部楼层
楼主发了两次贴,珍惜ID啊

出0入0汤圆

发表于 2017-1-14 10:13:22 | 显示全部楼层
如果SYSTICK配置函数使用的是库函数,并保证正确,那肯定是时钟树的配置问题啦。好好对照时钟树研究研究吧

出0入8汤圆

 楼主| 发表于 2017-1-14 10:15:18 | 显示全部楼层
wzd5230 发表于 2017-1-14 10:13
如果SYSTICK配置函数使用的是库函数,并保证正确,那肯定是时钟树的配置问题啦。好好对照时钟树研究研究吧 ...

谢谢,搞定了
偷懒照搬不行的,研究一下解决了

出0入8汤圆

 楼主| 发表于 2017-1-14 13:12:15 | 显示全部楼层
此贴误发了两次,请阿莫删掉吧,谢谢

出0入17汤圆

发表于 2017-1-14 14:40:10 | 显示全部楼层
重复发帖,为啥??

出0入17汤圆

发表于 2017-1-14 14:40:37 | 显示全部楼层
LZ是老实人,也是金牌会员哦

出0入0汤圆

发表于 2017-1-14 15:44:12 | 显示全部楼层
rube 发表于 2017-1-14 10:15
谢谢,搞定了
偷懒照搬不行的,研究一下解决了

还不是一人遇到,我遇到的也是6倍。

出0入0汤圆

发表于 2017-1-14 16:56:43 来自手机 | 显示全部楼层
会不会是用了hse,然后pll到48MHz,但是hse出了问题,系统自动启用了hsi,hsi默认8MHz?这样想正好相差6倍

出0入0汤圆

发表于 2017-1-15 09:29:56 | 显示全部楼层
都是经验啊。

出0入0汤圆

发表于 2017-1-16 08:23:48 来自手机 | 显示全部楼层
lz应该说一下造成的原因才是.......

出0入8汤圆

 楼主| 发表于 2017-1-16 12:58:21 | 显示全部楼层
gao5528 发表于 2017-1-14 15:44
还不是一人遇到,我遇到的也是6倍。

以如下代码初始化时钟:
/*时钟源选择*/
#define  SYSCLK_HSI    0
#define  SYSCLK_HSE    1

/*********************************************************************************
  * @函数名: syscolock_init
  * @描述: 系统时钟初始化
  * @参数:clkfrom  时钟源:CLK_HSI 内部时钟;CLK_HSE 外部时钟
  *                           pll  倍频:从2开始,最大16                 
  * @返回值:无
  * @说明:
**********************************************************************************/
void syscolock_init(uint8_t clkfrom, uint8_t pll)
{
        uint8_t temp = 0;
                       
  RCC_DeInit();                                                         /*复位并配置向量表*/                                  
  
  RCC->CFGR = 0X00000400;                 /*APB1 = DIV2; APB2 = DIV1; AHB = DIV1;*/                    
  
        pll -= 2;                                                                         /*偏移2(因为从0开始,0就是2)*/                          
       
  RCC->CFGR |= pll << 18;                  /*设置PLL值,2--16*/   
   
  if (clkfrom == SYSCLK_HSI)  /*使用内部时钟,sysclk =4*pllMhz*/
  {
                RCC->CR |= 0x00000001;    /*内部高速时钟使能HSION*/
    while(!(RCC->CR >> 1));   /*等待内部时钟就绪*/
    RCC->CFGR &= ~(1 << 16);  /*HSI经过2分频后作为PLL输入*/
  }
  else if (clkfrom == SYSCLK_HSE) /*使用外部时钟HSE sysclk = HSE * PLL MHz*/
  {
                RCC->CR |= 0x00010000;    /*外部时钟源HSEON*/
    while(!(RCC->CR >> 17));  /*等待外部时钟就绪*/
    RCC->CFGR |= 1 << 16;     /*HSE作为PLL输入*/
  }
  
  FLASH->ACR |= 0x32;         /* FLASH 2个延时周期*/
  RCC->CR |= 0x01000000;      /*PLLON*/
  while (!(RCC->CR >> 25));   /*等待PLL锁定*/
  RCC->CFGR |= 0x00000002;    /*PLL作为系统时钟*/
  while (temp != 0x02)        /*等待PLL作为系统时钟设置成功*/
  {   
                temp = RCC->CFGR >> 2;
    temp &= 0x03;
  }   
}                    

出0入8汤圆

 楼主| 发表于 2017-1-16 12:58:52 | 显示全部楼层
wiser803 发表于 2017-1-16 08:23
lz应该说一下造成的原因才是.......

代码已在楼上贴了

出0入0汤圆

发表于 2017-1-16 13:03:07 | 显示全部楼层
把MCO设置出来,实际上量一下。

出0入0汤圆

发表于 2017-1-16 13:59:22 | 显示全部楼层
这种问题根本不用看,直接把文件删掉,重新拷贝个例程

因为,实在从这种错误里面学不到什么东西

出0入0汤圆

发表于 2017-1-16 14:01:25 | 显示全部楼层
我之前用过一个是在os层面加了锁

出0入0汤圆

发表于 2017-2-9 12:11:15 | 显示全部楼层
stm32f030的systick设置

出0入0汤圆

发表于 2017-2-9 12:28:03 | 显示全部楼层
时钟配置错误。

出0入0汤圆

发表于 2017-2-14 14:11:41 | 显示全部楼层
多谢LZ,成功使用内部时钟PLL到48Mhz使用

出0入0汤圆

发表于 2017-2-14 14:33:49 | 显示全部楼层
有可能外部晶振没起振。

出0入8汤圆

 楼主| 发表于 2017-2-14 16:41:34 | 显示全部楼层
trave_yang 发表于 2017-2-14 14:33
有可能外部晶振没起振。

用内部晶振的。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-17 05:53

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表