#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) 如何通过软件区分 GD32 和 STM32?
有些客户出于代码的兼容性考虑,希望一套代码能够同时适用于 GD32 和
STM32,因此有此需求。
uint16_t Get_JTAG_ID( )
{
if( *( uint8_t *)( 0xE00FFFE8 ) & 0x08 )
{
return ( ( *( uint8_t *)( 0xE00FFFD0 ) & 0x0F ) << 8 ) |
( ( *( uint8_t *)( 0xE00FFFE4 ) & 0xFF ) >> 3 ) |
( ( *( uint8_t *)( 0xE00FFFE8 ) & 0x07 ) << 5 ) + 1 ;
}
return 0;
}
返回 0x041 是 ST,返回 0x7A3 是 GD 。
3) 问题:GD32F10x flash 取指零等待,在代码移植方面需要注意哪些?
GD32 采用专利技术提高了相同工作频率下的代码执行速度,带来了高性能的
使用体验。
因此如果代码有用到 for 循环或 while 循环语句做精确定时的,定时时间会由
于代码执行速度加快而使循环的时间变短。使用 Timer 定时器则没有影响。
GD32F2、GD32F4 系列和 STM32F2 及 STM32F4 系列在相同主频下代码执行效
率一致。对于所有 GD32 和 STM32 的系列,如果主频不超过 24MHz,也不存
在性能差异。
4) 问题:从 STM32 移植到 GD32,同样的硬件,GD32 上电启动失败。
如果客户板子上有一些大功率模块,比如 wifi 模块,GSM 模块,GPS 模块等,
而且客户 3.3V 电源输入输出电容选择不合适的话,会导致 GD MCU 启动失败。
大功率模块和 MCU 同样 3.3V 供电,上电瞬间可能会有较大电流,该电流在 LDO
评论0