野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11821|回复: 7

STM32F429挑战者开发板配套源码HSE时钟无法更改频率

[复制链接]
发表于 2017-7-8 10:37:22 | 显示全部楼层 |阅读模式
对429的手册还不算熟悉  今天在使用配套源码更改HSE时钟时候发现无效无法更改
经过测试发现更改启动代码中的时钟配置可以更改时钟频率、配套代码的HSI配置也可以改变时钟频率 但是HSE时钟无法更改
暂不知道原因 最后在HSE配置函数开始位置加一句 RCC_DeInit();只后才能更改时钟频率 有高人为我答疑解惑么?
还有就是我发现429配套的书中关于NVIC优先级配置说明部分的一个表格写的 主优先级2 子优先级9  这个在我认为应该是错误的  一共四个bit位 占先优先级1位 是1 子优先级3位就是8
回复

使用道具 举报

发表于 2017-7-8 11:27:29 | 显示全部楼层
不是有修改系统时钟的例程么,直接用啊
回复 支持 反对

使用道具 举报

发表于 2017-7-8 12:23:04 | 显示全部楼层
HSE是外部高速时钟,那么应该是外部时钟频率决定HSE的频率,修改HSE频率是什么意思呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-8 16:00:18 | 显示全部楼层
一是我没说明白问题在就是有些人理解能力有问题或者专门挑刺! 我就是用的开发板带的修改时钟的例子  开发板带的修改时钟频率的例子有两个修改时钟函数  一个是设置HSE->PLL为主时钟 另一个是HSI->PLL为主时钟,但是例子带的HSE-PLL为主时钟的函数根本无法设置频率 无论怎么改都是默认启动函数中设置的180M 但是HSI->PLL就可以更改时钟频率 后来我是在HSE-PLL函数前加了RCC时钟复位才能够使用HSE->PLL修改时钟频率  暂时能力有限 我就想知道为什么 会这样呢  也就是为什么在已经使用HSE->PLL的时候就不能再修改了
回复 支持 反对

使用道具 举报

发表于 2017-7-8 19:21:14 | 显示全部楼层
tys 发表于 2017-7-8 16:00
一是我没说明白问题在就是有些人理解能力有问题或者专门挑刺! 我就是用的开发板带的修改时钟的例子  开发 ...

你用配套的光盘程序,不要用视频盘里面的,视频盘里面的程序开头少写了一个 RCC_DeInit()函数,因为系统的启动文件里面已经配置过一次系统时钟了,如果你想再自己配置的话,需要把RCC的所有的寄存器复位之后才能够重新操作,你只需要在函数的开头再就一句复位RCC寄存器的函数就行了。
回复 支持 反对

使用道具 举报

发表于 2017-7-8 19:23:56 | 显示全部楼层
优先级你理解的是对的,我应该是笔误,因为我不可能理解错。
回复 支持 反对

使用道具 举报

发表于 2017-7-8 21:26:53 | 显示全部楼层
本帖最后由 LiuMC 于 2017-7-8 21:27 编辑

       你说的理解能力差还是挑刺一定是在说我,其实我也是没有看懂你的意思,不要不耐烦撒。
       刚看了一下参考手册RCC部分,是这么说的“Since the main-PLL configuration parameters cannot be changed once PLL is enabled, it is recommended to configure PLL before enabling it (selection of the HSI or HSE oscillator as PLL clock source, and configuration of division factors M, N, P, and Q).”
       估计你说的改HSE是说改主PLL的输入和输出吧。请看你调用的函数RCC_DeInit(),它将HSI打开,使用HSI作为系统时钟了,后面的寄存器复位没细看。这以后再对主PLL进行配置。我这里野火的代码是以前下载的了,刚刚看了一下时钟配置的例程,在HSE_SetSysClock()函数里首先就是调用的RCC_DeInit()。所以你没有认真看代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-8 22:26:44 | 显示全部楼层
LiuMC 发表于 2017-7-8 21:26
你说的理解能力差还是挑刺一定是在说我,其实我也是没有看懂你的意思,不要不耐烦撒。
       刚看 ...

好吧 是我不了解手册也没自己去翻 没发现手册都写了 PLL使能后就会记忆配置不能再次更改了 的确是我没仔细看代码  只是发现HSI-PLL能改主时钟频率  HSE-PLL就无效  刚看见 这俩函数区别  HSE开头少了RCC_DeInit();
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 23:54 , Processed in 0.041079 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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