使用CubeMX配置STM32H743的LwIP和FreeRTOS

1、开发环境

硬件:野火挑战者开发板STM32H743IIT6
软件版本: CubeMX 6.7.0 STM32CubeH7 Firmware Package V1.11.0 / 04-Nov-2022

原理图:

2、配置时钟


时钟树参数仅供参考
时钟参数

3、配置MPU

MPU配置需要查相关资料,一知半解

4、配置调试串口

修改GPIO与硬件原理图对应,串口参数默认

5、配置网口

参数配置与硬件对应

此处网络收发地址非常重要!!!

使能中断

6、配置Lwip


7、生成keil工程



串口printf函数相关配置

/void Usart_SendString(uint8_t *str)
{
	unsigned int k=0;
  do 
  {
      HAL_UART_Transmit( &huart1,(uint8_t *)(str + k) ,1,1000);
      k++;
  } while(*(str + k)!='\0');
  
}
///重定向c库函数printf到串口DEBUG_USART,重定向后可使用printf函数
int fputc(int ch, FILE *f)
{
	/* 发送一个字节数据到串口DEBUG_USART */
	HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 1000);	
	
	return (ch);
}

///重定向c库函数scanf到串口DEBUG_USART,重写向后可使用scanf、getchar等函数
int fgetc(FILE *f)
{
		
	int ch;
	HAL_UART_Receive(&huart1, (uint8_t *)&ch, 1, 1000);	
	return (ch);
}

添加打印、网络处理函数

编译程序,测试网络、串口功能

8、添加Freertos


!!!!!下面这一步非常重要,卡了很长时间才找到原因!!!!!

生成keil工程,屏蔽之前的调试程序

添加如下代码:

测试网络:

9、测试网络传输性能

单板上使用的LAN8720,而CubeMX配置的是LAN8742,两者稍有差异,按照下图配置为100M速率,否则速率为10M

参考:https://www.freesion.com/article/29491218149/
[野火]《LwIP应用开发实战指南—基于野火 STM32 全系列(M4-M7)开发板》

10、总结

在开发过程中,由于很多细节不清楚,走了很多弯路,临时查了很多资料,没有完全吸收,有很多地方还不是很明白,需要继续学习。最后,欢迎大家留言讨论以及提出指导意见。

物联沃分享整理
物联沃-IOTWORD物联网 » 使用CubeMX配置STM32H743的LwIP和FreeRTOS

发表评论