首先内容很长,所以分楼层说明.
1、 系统 1) 晶振起振区别 描述:启动时间,GD32 与STM32 启动时间都是2ms,实际上GD 的执行效率快,所以ST 的HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)是2ms,但是这个宏定义值在GD 上时间就更加短了,所以要加大这个值的设置。 解决方法:将宏定义: #define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) 修改为: #define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF) 备注:启动时间宏定义所在位置: 1、在V3.X 的库,其启动时间宏定义在stm32f10x.h 头文件中(路径:\..\Libraries\CMSIS\CM3)。(库版本的不同,所在目录也有所不同) 2、在V3.0 以前的库,其启动时间宏定义在stm32f10x_rcc.c 源文件中(HSEStartUp_TimeOut)(路径:\..\Libraries\STM32F10x_StdPeriph_Driver\src)。 2) 部分客户使用有源晶振出现问题,在GD32F103 小容量产品,发现会在MCU 的复位管脚一直把电平拉到0.89V,电平不能保持在高电平。 描述:是由于部分有源晶振起振时间太快,复位信号还没有完成导致的 解决方法:就是在有源晶振的输入端与地之前并上一个30pf电容。 3) GD32 MCU 主频支持108MHz 高性能,在代码移植方面需要注意事项 描述:GD32 通过芯片内部加大缓存,提高了相同工作频率下的代码执行速度,带来了高性能的使用体验。 解决方法:因此如果代码有用到for 循环或while 循环语句做精确定时的,定时时间会由于代码执行速度加快而使循环的时间变短。使用Timer 定时器则没有影响。 4) GD32F105/107 系列MCU 配置为108MHz 有何不同 描述:通过Clock configuration register (RCC_CFGR) 中, 第21 : 18 位为PLLMUL[3:0],再结合第29 位PLLMUL[4]组成5 位的位域来确定PLL 倍频系数,即通过软件配置来定义PLL 的倍频系数,且PLL 输出频率绝对不得超过最高主频(108MHz)。
|