完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用工具
STM32F407ZGT6正点原子探索者开发板 STM32CubeMX:版本V4.27.0 STM32CubeF4 Firmware Package V1.21.0 / 23-February-2018 官方例程:D:STM32CubeRepositorySTM32Cube_FW_F4_V1.21.0ProjectsSTM324xG_EVALApplicationsLwIPLwIP_IAP 项目中用到了远程升级(IAP)功能,即通过以太网设备+LWIP协议栈实现远程升级stm32f407开发板。官方提供的例程中,开发板使用的PHY设备是DP83848,与实验室开发板使用的LAN8720有着一些不同,DP83848是MII接口的,而LAN8720使用的是RMII接口,这两种协议的具体区别读者可以参考其他资料。 STM32F407开发板的HTTP模式IAP远程升级之官方例程移植 STM32F407开发板的HTTP模式IAP远程升级之新建模板 准备工作 一。新建以太网工程模板 1.打开STM32CubeMX,点击New Project 2.选择STM32F407ZG芯片,双击即可打开配置界面 3.Pinout配置 选择PHY接口 选择LWIP 选择外部晶振 选择烧写方式和时基 选择串口1 添加BUTTON_WAKEUP按钮引脚(进入升级模式时使用) 根据LAN8720原理图修改下列引脚 ETH_TX_EN -》 PG11 ETH_TXD0 -》 PG13 ETH_TXD1 -》 PG14 PD3配置成GPIO输出(LAN8720A的硬件复位引脚) 4.Clock Configuratoin 出现下图提示,点击Yes即可 修改一下红框所示的参数 3.Configuration配置 串口1配置 以太网配置 LWIP配置 取消DHCP,使用静态IP,方便测试 GPIO设置 PD3为PHY输入引脚,设置高,LAN8720正常工作 PA0设置,修改User Label,作为进入升级模式的判定按键引脚(输入模式) 5.生成工程 每个外设生成单独的配置文件 二。调试串口输出 以下代码加入到usart.c中 /****************************************************************************** * 描述 : 重定向c库函数printf到串口 * 参数 : 无 * 返回 : HAL_OK = 0x00U HAL_ERROR = 0x01U HAL_BUSY = 0x02U HAL_TIMEOUT = 0x03U ******************************************************************************/ int fputc(int ch, FILE *f) { return HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); } 三。创建app文件 在工程文件夹下新建一个名为user的文件夹,在user文件夹下新建一个名为app的文件夹 在keil工程中新建一个名为user/app的group(如果出现keil卡死的情况,就先创建一个名为user的group,然后再将其改成user/app即可) 新建app.c文件,保存到文件夹user/app文件夹下,并将app.c添加到user/app的group中 app.c如下 /** ***************************************************************************** * @file app.c * @author Zorb * @version V1.0.0 * @date 2018-09-04 * @brief 应用的实现 ***************************************************************************** * @history * * 1. Date:2018-09-04 * Author:Zorb * Modification:建立文件 * ***************************************************************************** */ #include “app.h” /****************************************************************************** * 描述 : 应用的初始化 * 参数 : 无 * 返回 : 无 ******************************************************************************/ void App_init(void) { printf(“hello zorbrn”); } /****************************************************************************** * 描述 : 应用程序 * 参数 : 无 * 返回 : 无 ******************************************************************************/ void App_process(void) { } /******************************** END OF FILE ********************************/ 新建app.h,保存到user/app文件夹中,并将其路径添加到keil的include路径中 app.h如下 /** ***************************************************************************** * @file app.h * @author Zorb * @version V1.0.0 * @date 2018-09-04 * @brief 应用的头文件 ***************************************************************************** * @history * * 1. Date:2018-09-04 * Author:Zorb * Modification:建立文件 * ***************************************************************************** */ #ifndef __APP_H__ #define __APP_H__ #ifdef __cplusplus extern “C” { #endif #include “stm32f4xx_hal.h” /* 应用的初始化 */ void App_init(void); /* 应用程序 */ void App_process(void); #ifdef __cplusplus } #endif #endif /* __APP_H__ */ /******************************** END OF FILE ********************************/ 在main.c中添加一下代码 此时将程序下载至开发板,运行ping命令,成功ping通,至此模板搭建完成 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1848浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
610浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
504浏览 3评论
508浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
489浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 17:21 , Processed in 0.584000 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号