CH32V208写内部Flash,软件死掉重启

用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),这边具体看一下。

icon_rar.gifCH32V208 FLASH.zip

image.png


icon_rar.gifCH32V208 FLASH.zip

120MHz  FlashWrite(0,(uint8_t*)EepromBuf,SizeOfEepromBuf); 之后 就会走入

void HardFault_Handler(void)

{



    NVIC_SystemReset();

  while (1)

  {

  }

}


这个中断,但是144MHz就没有任何问题



您好,可将FLASH操作代码中2分频之后最后需要修改为1分频按下图操作,这边测试在任何主频下都是没有问题的,可按照下图测试一下。后续若有问题,可继续通过邮箱和我沟通。附件为我的测试代码,可以测试一下。

icon_rar.gifCH32V208 FLASH.zip

image.png


只有登录才能回复,可以选择微信账号登录