micoccd 发表于 2023-5-29 14:11

GD32替换STM32启动问题

背景:

      GD32f103替换STM32f103,外部晶振不起振系统自动调用内部晶振,程序无法正常运行。

显现:

      Can、Uart等外设无法使用,定时器时钟频率不正常

原因(官方解释):

      GD32运行时间比STM32运行速度快,导致实际等待晶振起振时间比设置的时间要短

解决方法1(官方):

      stm32f10x.h

      #define HSE_STARTUP_TIMEOUT   ((uint16_t)0x0500)

      修改为:

      #define HSE_STARTUP_TIMEOUT   ((uint16_t)0xffff)

结果:

      按照该方法修改,程序仍然会出现使用内部晶振的问题,但概率会降低。

解决方法2:

      制作bootloader程序,在bootloader中使用内部晶振,同时启动外部晶振。

      等待2~5S时间,确保外部晶振已经启动后程序跳转至APP中。


chenjun89 发表于 2023-6-10 22:34

学习了,谢谢分享经验。

豌豆爹 发表于 2023-7-14 10:36

学习了,谢谢分享经验。
页: [1]
查看完整版本: GD32替换STM32启动问题