CubeMX创建裸机工程:STM32F407+ LAN8720A + RMII + lwIP
硬件环境:
- MCU单片机型号:STM32F407VGTx
- PHY 芯片型号 : LAN8720
- MCU和PHY芯片接口:RMII
- 操作系统:无
- TCP/IP网络协议栈:lwIP
- 配置工具:CubeMX
- 编译工具:Keil5
- 烧录器:J-Link
- 烧录模式:SWD
原理图部分
STM32F407与PHY芯片LAN8720采用RMII接口方式,电路连接如下
CubeMX 配置
- 外部晶振作为时钟源
- 时钟配置
SWD烧写模式
RMIII的以太网接口
关闭操作系统
使能lwIP并开启静态IP模式
产生KEIL工程
裸机程序需要在主函数中添加MX_LWIP_Process()
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_LWIP_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
MX_LWIP_Process();
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
测试验证
将程序编译以后,烧到板子里面,然后配置电脑IP,使其在同一网段,ping 开发板
小结*
- 选择RMII接口方式以后,要逐个核对MCU引脚
- PHY芯片的时钟要保证稳定干净
- PHY芯片的复位和PHY地址要根据原理图配置
- 裸机工程需要手动添加MX_LWIP_Process();
获取工程和源码,请+QQ: 1025054559