用120MHz_HSE的频率就会出现死掉重启,用144MHz_HSE就不会,完全没问题。
? ? 也已经2分频了
__disable_irq();
? ? //大于96000000,需要系统2分频,用完就要恢复
? ? if(SystemCoreClock > 96000000) RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV2;
? ? FLASH_Unlock();
用120MHz_HSE的频率就会出现死掉重启,用144MHz_HSE就不会,完全没问题。
? ? 也已经2分频了
__disable_irq();
? ? //大于96000000,需要系统2分频,用完就要恢复
? ? if(SystemCoreClock > 96000000) RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV2;
? ? FLASH_Unlock();
您好,这边针对你的问题测试了一下,并没有出现你所说的问题,注意一下工程文件的配置,如ld文件、启动文件以及宏定义的配置等,具体如下图。附件为我的测试例程,可以参考一下。此外注意一下FLASH编程方式采用标准编程还是快速编程方式,不同编程方式对应的解锁读写操作不同,还有需要注意分频后对应的外设要重新进行初始化,具体可看附件例程。后续若有问题,可将你的例程发至我的邮箱(lzs@wch.cn),这边具体看一下。
120MHz FlashWrite(0,(uint8_t*)EepromBuf,SizeOfEepromBuf); 之后 就会走入
void HardFault_Handler(void)
{
NVIC_SystemReset();
while (1)
{
}
}
这个中断,但是144MHz就没有任何问题
您好,可将FLASH操作代码中2分频之后最后需要修改为1分频按下图操作,这边测试在任何主频下都是没有问题的,可按照下图测试一下。后续若有问题,可继续通过邮箱和我沟通。附件为我的测试代码,可以测试一下。