下弦月-339376 发表于 2017-3-21 23:09:52

wenyangzeng 发表于 2017-3-21 20:34
你用那个13要倍频到64恐怕无法整倍数。
应该把HSI的8MHZ先2分频,再16倍频,才能达到刚好64MHZ。 ...

是的,要64M是要 16倍的。而且用内部HSI,也必须先2分频 再倍频的。我现在问题是,一旦倍频数大于等于13,就会进硬件故障中断。最终目的是要 8 / 2 *16 = 64

zbber 发表于 2017-3-22 12:20:02

好像可以呀:

xmshao 发表于 2017-3-22 15:32:43

本帖最后由 xmshao 于 2017-3-22 15:45 编辑

像你这种情况,建议你检查2点:
1、芯片电源管脚一个个检查,不要有漏网之鱼。非常重要!
2、检查那个预取配置的代码,是不是没有正确配置。你可以在你配置时钟之前加上这几句。
/* Enable Prefetch Buffer */
    FLASH->ACR |= FLASH_ACR_PRFTBE;
    /* Flash 2 wait state */
    FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
    FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;   

不过从你描述的情况,问题很可能在第2点。

下弦月-339376 发表于 2017-3-24 09:41:26

xmshao 发表于 2017-3-22 15:32
像你这种情况,建议你检查2点:
1、芯片电源管脚一个个检查,不要有漏网之鱼。非常重要!
2、检查那个预取 ...

前两天比较忙,没顾得上试,我用你的方法可以了,非常感谢!!! 具体为啥我在自行补课吧,哈哈……

下弦月-339376 发表于 2017-3-24 10:24:17

英文版手册有讲,中文版的阉割掉了。。。
但我还是不太清楚,为什么我没有用外部8M晶体,
但焊上,HSI直接倍频64M就没问题,拆掉,就进hardfault中断。。。必须配置等待周期为2就正常。

难道会自动判断外部晶体有无,自动设置 FLASH_ACR ? 唉。。。看来我还是道行太浅啊。。。

xmshao 发表于 2017-3-24 16:26:23

下弦月-339376 发表于 2017-3-24 10:24
英文版手册有讲,中文版的阉割掉了。。。
但我还是不太清楚,为什么我没有用外部8M晶体,
但焊上,HSI直接 ...

不客气 一起学习!

Dylan疾风闪电 发表于 2017-3-27 16:38:15

我一直是用HSI->2分频-> 再PLL到最大频率。
没什么问题的。
不论是配置寄存器(STM32CubeMX没出生以前),还是STM32CubeMX都可以实现。:)
页: 1 [2]
查看完整版本: STM32F103 内部HSI 倍频到64M的问题,样机,急~