STM32CubeMX 下载和安装 详细教程
【HAL库】STM32CubeMX开发----STM32F407----目录
LAN8720A数据手册(中文+英文)
前言
本次实验以 STM32F407VET6 芯片为MCU,使用 25MHz 外部时钟源。
以太网PHY层芯片为 LAN8720A,由MCU引脚 PA8 提供时钟。
LAN8720A引脚 与 MCU引脚 连接关系如下:
LAN8720A引脚 | MCU引脚 |
---|---|
ETH_MDIO | PA2 |
ETH_MDC | PC1 |
ETH_TX_EN | PB11 |
ETH_TXD0 | PB12 |
ETH_TXD1 | PB13 |
ETH_RXD0 | PC4 |
ETH_RXD1 | PC5 |
ETH_CRS_DV | PA7 |
ETH_REF_CLK | PA1 |
ETH_RESET | PC0 |
ETH_CLK | PA8 |
一、使用STM32CubeMX----新建工程
步骤1:打开 STM32CubeMX 软件
具体 STM32CubeMX 界面如下:
步骤2:选择 从MCU开始我的项目
步骤3:选择MCU芯片
我们本次实验选择 STM32F407VET6 芯片做 MCU。
进入工程编辑,具体界面如下:
步骤4:设置烧写方式为 SWD模式
这一步必须选择一种烧写方式,否则烧写一次程序后,芯片中就没法再次烧写程序了。需要硬件重启才可以重新烧写程序。
STM32烧写程序连接方式详解
步骤5:设置时钟源
设置外部晶振为芯片系统时钟源。
配置输出时钟引脚 PA8,给 LAN8720A以太网芯片提供时钟。
步骤6:设置时钟
STM32F407 时钟最大频率为 168MHz,所以设置系统失踪SYSCLK = 168MHz。
设置 MCO1 输出时钟为 25MHz。
步骤7:以太网配置
1. ETH配置
勾选接收中断
2. LWIP配置
选择手动配置IP
IP地址 | 192.168.001.112 |
---|---|
IP掩码 | 255.255.255.000 |
IP网关 | 192.168.001.001 |
关闭UDP通信模式
3. 复位引脚配置
鼠标左键点击 PC0 引脚,选择 GPIO_Output 模式。
鼠标右键点击 PC0 引脚,点击 Enter User Label,输入用户标签。
结果如下:
步骤8:项目编辑
步骤9:代码生成编辑
步骤10:点击 GENERATE CODE 生成代码
新建的工程,已经生成,接下来就是对工程代码的编辑。
二、使用keil5----编辑程序
想要使用keil5打开工程,需要电脑先安装 keil5编译环境,具体操作流程。
可以点击下方文章链接:Keil5编译环境搭建流程
步骤1:勾选 Use MicroLIB 库
步骤2:在main函数循环中添加 MX_LWIP_Process() 函数
步骤3:添加复位使能代码
连接 以太网LAN8720A 芯片 复位引脚 PC0 拉低拉高一下
HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_RESET);
HAL_Delay(50);
HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_SET);
添加到 void HAL_ETH_MspInit(ETH_HandleTypeDef* ethHandle)
函数中
编译一下,没有问题就可以烧写到开发板。
三、配置电脑的以太网
配置电脑的以太网为 手动分配ip
Win+R 输入 cmd ,然后回车
输入 ping开发板的IP: ping 192.168.1.112,然后回车
以下现象说明 ping 通了。