CubeMX创建裸机工程:STM32F407+ DP83848 + MII + lwIP

CubeMX创建裸机工程:STM32F407ZGT6 MII接口驱动 DP83848

*之前的一篇文章说了如何使用CubeMX创建一个stm32f407 + DP83848 + MII + lwip +FreeRTOS的工程,链接:https://blog.csdn.net/leideleide/article/details/106524136

依赖于这个平台,这里我们使用cubeMX来搭建一个没有操作系统FreeRTOS的裸机工程*

硬件环境:

  • MCU单片机型号:STM32F407ZGT6
  • PHY 芯片型号 :DP83848
  • MCU和PHY芯片接口:MII
  • 操作系统:无
  • TCP/IP网络协议栈:lwIP
  • 配置工具:cubeMX
  • 编译工具:Keil5
  • 烧录器:J-Link
  • 烧录模式:SWD

原理图:
原理图部分使用STM32F4XX编程手册的推荐电路,同时PHY 芯片DP83848使用外部25M晶振作为时钟源
在这里插入图片描述

CubeMX配置注意事项

1.CubeMX选择MII模式以后,请一一核对CubeMX管脚是否和原理图一一对应
2.注意PHY 芯片DP83848的PHY 芯片复位管脚、使能管脚和PHY地址

CubeMX的配置

  • MCU时钟配置,选择外部晶振25M,主频配置为168M
    在这里插入图片描述
  • Eth选择MII模式,因为没有操作系统,所以RX模式是轮询模式
  • LWIP配置使用静态IP, 配置对应的IP地址,然后就可以生成keil工程
    在这里插入图片描述
  • cubeMX产生keil工程main函数中需要我们完成以下工作
    1> 完成DP83848的使能和RST工作
    2> 完成网络数据的轮询接收
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();
	HAL_GPIO_WritePin(DP83848_EN_GPIO_Port, DP83848_EN_Pin, GPIO_PIN_SET);
	
	HAL_GPIO_WritePin(DP83848_RST_GPIO_Port, DP83848_RST_Pin, GPIO_PIN_RESET);
	short_delay();
	HAL_GPIO_WritePin(DP83848_RST_GPIO_Port, DP83848_RST_Pin, GPIO_PIN_SET);
  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 */
}

测试与验证
1.将电脑IP和板子的IP地址配置在一个网段,然后在电脑端ping 192.168.1.109
在这里插入图片描述
至此cubeMX 配置完成

小结

  • 根据原理图确定STM32F4XX和PHY芯片的连接方式MII
  • MII接口确定以后,需要根据原理图在cubeMX配置引脚
  • DP83848的PHY 使能,复位,PHY地址都要根据原理图配置
  • PHY芯片的时钟要保证稳定
  • 裸机程序,需要在主函数中添加MX_LWIP_Process();

获取工程和源码,请+QQ: 1025054559

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值