你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

用STM32CubeMX V4.25配置L432KC时钟,TM1与实际相差5倍?

[复制链接]
板子粉丝 提问时间:2018-4-18 09:22 /
阅读主题, 点击返回1楼
收藏 评论18 发布时间:2018-4-18 09:22
18个回答
板子粉丝 回答时间:2018-4-18 13:02:59
下面附件是我在PA0引脚上测得的时钟波形,有8MHz的
tek00287.png
回答时间:2018-4-18 13:48:05
仿真一下,看看开启外部晶振操作过程是否发生了失败。还是排查一下外部电路的问题。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

板子粉丝 回答时间:2018-4-18 14:02:05
我一路跟踪,HAL_RCC_OscConfig返回 HAL_OK
寄存器貌似也对的
5.jpg
6.jpg
butterflyspring 回答时间:2018-4-18 15:19:10
首先可以用寄存器看看时钟源的设置,看完,是可以设置一个MCO输出,测一下就知道具体的频率了.记得设置MCO管脚为高速..

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

板子粉丝 回答时间:2018-4-18 15:25:26
现在可以确定我的外部有源晶振被内部HSI RC接管了!是不是外接有源晶振还要注意什么问题
板子粉丝 回答时间:2018-4-18 16:21:16
外部有源晶振8MHz不倍频,直通到SYSCLK,整个系统时钟用8MHz能跑起来。估算结果也是对的。
看来问题在倍频上,是不是有特殊设置值?
板子粉丝 回答时间:2018-4-18 18:27:08
RCC用LL库就可以用外部时钟8MHz,倍频到80MHz。奇怪了!!!
板子粉丝 回答时间:2018-4-19 08:55:49
我用的版本是STM32CubeMX V4.25 + STM32Cube_FW_L4_V1.11.0
也不知道是不是版本原因?
板子粉丝 回答时间:2018-4-19 14:38:06
经过今天的努力,发现是 PLL configuration register (RCC_PLLCFGR)寄存器HAL库配置不正确,我就做了一下修改
在main.c里
  /**Initializes the CPU, AHB and APB busses clocks
    */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 1;
  RCC_OscInitStruct.PLL.PLLN = 20;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
  RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
  RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
------------------------------------------------------------

在stm32l4xx_hal_rcc.h 里

#if defined(RCC_PLLP_DIV_2_31_SUPPORT)

#define __HAL_RCC_PLL_CONFIG(__PLLSOURCE__, __PLLM__, __PLLN__, __PLLP__, __PLLQ__,__PLLR__ ) \
                  (RCC -> PLLCFGR = (uint32_t)(((__PLLM__) - 1U) << 4U) | (uint32_t)((__PLLN__) << 8U) | \
                   (__PLLSOURCE__) | (uint32_t)((((__PLLQ__) >> 1U) - 1U) << 21U) | (uint32_t)((((__PLLR__) >> 1U) - 1U) << 25U) | \
                   (uint32_t)(((__PLLP__) >> 4U ) << 17U) | (uint32_t)(1 << 24U))
#else

#define __HAL_RCC_PLL_CONFIG(__PLLSOURCE__, __PLLM__, __PLLN__, __PLLP__, __PLLQ__,__PLLR__ ) \
                  (RCC -> PLLCFGR = (uint32_t)(((__PLLM__) - 1U) << 4U) | (uint32_t)((__PLLN__) << 8U) | \
                   (uint32_t)(((__PLLP__) >> 4U ) << 17U) | \
                   (__PLLSOURCE__) | (uint32_t)((((__PLLQ__) >> 1U) - 1U) << 21U) | (uint32_t)((((__PLLR__) >> 1U) - 1U) << 25U))

#endif /* RCC_PLLP_DIV_2_31_SUPPORT */


居然能用了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2 能用就好,那我结贴了

查看全部评分

12

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版