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、總結
在開發過程中,由于很多細節不清楚,走了很多彎路,臨時查了很多資料,沒有完全吸收,有很多地方還不是很明白,需要繼續學習。最後,歡迎大家留言讨論以及提出指導意見。