打印

从STM32F429迁移到GD32F450时,以太网驱动程序可能需要进行调整

[复制链接]
798|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kepe|  楼主 | 2024-5-31 23:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kepe 于 2024-6-1 08:47 编辑

从STM32F429迁移到GD32F450时,以太网驱动程序可能需要进行调整。GD32F450和STM32F429虽然在很多方面兼容,但它们的外设细节和驱动程序可能有些许不同。因此,确保使用适用于GD32F450的正确驱动程序是关键。
1. 驱动程序更新
首先,确认您正在使用GD32F450的官方以太网驱动程序。GD32F450的驱动程序可以从GigaDevice的官方网站或相关的开发资源中获得。

2. 确认硬件配置
确保GD32F450的硬件配置与STM32F429一致,特别是在以太网PHY芯片和相关引脚连接上。检查硬件配置,包括时钟设置、引脚复用等。

3. 适配驱动程序
将GD32F450的以太网驱动程序与现有项目集成,并进行必要的适配。以下是一些关键点:

使用特权

评论回复
沙发
kepe|  楼主 | 2024-5-31 23:40 | 只看该作者
本帖最后由 kepe 于 2024-6-1 08:49 编辑

配置系统时钟
GD32F450的时钟配置可能与STM32F429不同。确保系统时钟和以太网时钟正确配置。以下是一个示例:

c
void SystemClock_Config(void)
{
    // 配置GD32F450的系统时钟
    // 根据您的具体需求配置时钟源、PLL、分频器等
}


使用特权

评论回复
板凳
kepe|  楼主 | 2024-5-31 23:40 | 只看该作者
本帖最后由 kepe 于 2024-6-1 08:50 编辑

初始化以太网外设
确保以太网外设的初始化代码与GD32F450兼容。以下是一个简化的示例:

c

void Ethernet_Init(void)
{
    // 启用以太网时钟
    rcu_periph_clock_enable(RCU_ETH);

    // 配置以太网引脚
    // 使用GD32F450的GPIO库函数配置引脚复用
    gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7);
    gpio_af_set(GPIOA, GPIO_AF_11, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7);

    // 其他引脚配置
    // ...

    // 配置以太网
    eth_deinit();
    eth_init();
}


使用特权

评论回复
地板
kepe|  楼主 | 2024-5-31 23:40 | 只看该作者
本帖最后由 kepe 于 2024-6-1 08:50 编辑

处理中断
确保以太网中断处理程序与GD32F450的中断配置匹配。以下是一个示例:

c

void ETH_IRQHandler(void)
{
    // 处理以太网中断
    // 确保使用GD32F450的中断处理函数
    if (eth_interrupt_flag_get(ETH_INT_RPS))
    {
        eth_interrupt_flag_clear(ETH_INT_RPS);
        // 处理接收数据
    }
    if (eth_interrupt_flag_get(ETH_INT_TPS))
    {
        eth_interrupt_flag_clear(ETH_INT_TPS);
        // 处理发送数据
    }
}


使用特权

评论回复
5
夜游神ss| | 2024-6-4 15:35 | 只看该作者
给一个

使用特权

评论回复
6
FranklinUNK| | 2024-6-20 19:41 | 只看该作者
把底层的库替换一下应该就行吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

115

帖子

0

粉丝