stm32f4的hal_delay()延时问题

2019-03-23 18:21发布

拿到论坛的f4开发板挺久了,欠了大表姐和女神好多贴,最近在鼓捣,用了cube的hal库,用hal_delay()延时点灯。用st的例程,延时正确,但是我自己搞了个工程,延时就不对,时钟配置代码都一样,把sysclk通过两分频输出到mco2来看是90M,说明工作的时钟是180MHz没问题,现在确定是软件的问题。
在想,因为hal_delay()用的是SysTick timer,是不是这个的时钟没搞对呢?求大神指点
  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  
  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lcofjp
1楼-- · 2019-03-24 00:28
 精彩回答 2  元偷偷看……
elvike
2楼-- · 2019-03-24 05:55
lcofjp 发表于 2016-1-27 11:46
那么,SysTick的时钟源是哪个呢?

报告队长,找到问题了。是stm32f4_hal_conf.h里面对hse晶振有个定义,默认是25M,需要把这个值相应做修改。因为建工程的时候用的是template改过来的,没有用实际例程的文件,所以被坑了。
#if !defined  (HSE_VALUE)
  #define HSE_VALUE    ((uint32_t)10000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
lcofjp
3楼-- · 2019-03-24 06:37
elvike 发表于 2016-1-27 13:39
报告队长,找到问题了。是stm32f4_hal_conf.h里面对hse晶振有个定义,默认是25M,需要把这个值相应做修改 ...

恭喜你找到问题了!

一周热门 更多>