一、修改时钟频率和晶振、PLL参数配置
1.1、晶振
GD32F407VG芯片中选用的是外部高速晶体振荡器时钟(HXTAL)频率为25MHz;
可在GD32例程中的 "gd32f4xx.h" 文件查看:
在STM32F4例程中所对应的是 "HSE_VALUE" 需要将其频率改成25MHz;
同时需要将启动时间 "HSE_STARTUP_TIMEOUT" 也需修改为最大值0XFFF;
解释(搜的资料):由于GD32F3的外部晶体起振时间会比 STM32F10x 系列要长,所以原有的晶体超时时间需要加大。
可在STM32例程中的 "stm32f4xx.h" 文件修改:
1.2、时钟频率
系统时钟频率是168MHz或200MHz都可以,本次使用的是例程中的168MHz(未修改);
可在GD32例程中的 "system_gd32f4xx.c" 文件的宏定义中查看:
若是需要修改,可就将变量名 "SystemCoreClock" 的值改为200000000 ;
可在STM32例程中 "system_stm32f4xx.c" 文件中修改:
1.3、配置PLL参数
最后还需要配置PLL参数:由于STM32例程中使用的晶振是8MHz, 在GD32中使用的是25MHz;
可在GD32例程中的 "system_gd32f4xx.c" 文件 static void system_clock_200m_25m_hxtal(void)函数中查看:
相应的在STM32例程中 "system_stm32f4xx.c" 文件中修改:将 "PLL_M" 改为25
二、管脚配置
在GD32中以太网模块使用的引脚是:
PA1 --------> ETH_RMII_REF_CLK
PA2 --------> ETH_MDIO
PA7 --------> ETH_RMII_CRS_DV
PB11 -------> ETH_RMII_TX_EN
PG13 -------> ETH_RMII_TXD0
PG14 -------> ETH_RMII_TXD1
PC1 --------> ETH_MDC
PC4 --------> ETH_RMII_RXD0
PC5 --------> ETH_RMII_RXD1
PC0 --------> ETH_RESET
而在STM32例程中使用管脚有四个不一样休要修改(仅是关于以太网模块相关的管脚),
"ETH_RMII_TX_EN","ETH_RMII_TXD0","ETH_RMII_TXD1" ,"ETH_RESET";
在STM32例程中 "stm32f4x7_eth_bsp.c" 文件中的 "ETH_GPIO_Config(void)" 函数里修改:
该处修改很重要,忘记修改的话,关于软件复位的地方为一直失败;
GD32中会在该地方一直复位失败:
STM32中会在该地方一直复位失败:
在函数中将使用的管脚改为PC0;
三、修改PHY寄存器 (我也不知道干啥用的)
根据使用的芯片类型选择,本次使用的PHY芯片是YT8512;
PHY芯片地址 "PHY_ADDRESS" 也是需要根据实际情况修改成0 或 1;
在GD32例程中 "gd32f4xx_enet.h" 文件中:
在STM32例程中 "stm32f4x7_eth_bsp.h" 文件中修改:"PHY_ADDRESS"值为 0;
同时也需要修改这三个值:"PHY_SR" ,"PHY_SPEED_STATUS" ,"PHY_DUPLEX_STATUS"
在STM32例程中 "stm32f4x7_eth_conf.h" 文件中修改:将以上三个值改为下图中的值;
"PHY_SR"值是十六进制数格式;
最后可在各自例程中的main.h 文件中修改想要的IP地址:
结果:
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/c12683/article/details/142261673
|